[Day 11]公費0411-内容整理
🌞ファイルI/O
プログラムの実行結果を永続的に保存したい場合は、ファイルに印刷できます.
🌞java.io
읽는다. 출력한다 ==> 컴퓨터의 "메모리" 입장에서 따지는 것
읽는다. ==> 파일의 내용을 메모리로 읽어들인다.
출력한다. ==> 메모리의 내용을 파일로 출력한다.
🌞I/Oユニット
🌈文字単位のI/O文字
🌈バイトI/O
🌞Java提供I/Oクラス
文字単位の入力リーダー->FileReader
文字単位の出力(一番早い)Writer->FileWriter
バイトで入力(一番早い)InputStream
バイト単位出力(最早)Output Stream
🌞ストリーム(Stream)
🌞グラフィックの表示
🌞例
🌟(画像)例1🌟
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
class GrimpanPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
//super.paintComponent(g);
g.setColor(Color.red);
g.drawLine(10, 10, 100, 100); //선을 그어줌.
g.setColor(Color.blue);
g.drawOval(10, 10, 100, 100); //원 그리기
g.setColor(Color.green);
g.drawRect(10, 10, 100, 100); //사각형 그리기
}
}
class Grimpan extends JFrame {
//그림판 매널을 멤버로 선언
GrimpanPanel gp;
public Grimpan() {
gp = new GrimpanPanel();
add(gp);
setSize(400, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public class GrimpanTest {
public static void main(String[] args) {
new Grimpan();
}
}
🌟(画像)例2🌟
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
class Paint extends JFrame implements ActionListener{
public Paint() {
setSize(400, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
@Override
public void paintComponents(Graphics g) {
// TODO Auto-generated method stub
//super.paintComponents(g);
g.drawLine(10, 10, 100, 100); //선을 그리는 코드
}
}
public class PaintTest {
public static void main(String[] args) {
new Paint();
}
}
🌞練習問題
👑練習問題1👑
package practice08;
//0408 숙제 pdf 8번문제
import java.util.ArrayList;
import java.util.Objects;
import java.util.Scanner;
class Student {
private String name, addr, phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Student(String name, String addr, String phone) { //생성자
super();
this.name = name;
this.addr = addr;
this.phone = phone;
}
@Override
public int hashCode() {
return Objects.hash(addr, name, phone);
}
@Override
public boolean equals(Object obj) { //삭제하기 위하여 필요함
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
return Objects.equals(addr, other.addr) && Objects.equals(name, other.name)
&& Objects.equals(phone, other.phone);
}
}
public class StudentTest {
public static Scanner sc; //스캐너를 모두 사용하기 위하여
public static void printMenu() {
System.out.println("----------------------------------------------");
System.out.println("1. 학생등록, 2. 검색, 3. 삭제, 4. 모두출력, 0. 종료");
System.out.print("메뉴를 선택하세요: ");
}
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<Student>();
sc = new Scanner(System.in);
int menu;
while(true) {
printMenu();
menu = sc.nextInt();
if(menu == 0) {
break;
}
switch(menu) {
case 1: insertStudent(list);break;
case 2: searchStudent(list);break;
case 3: deleteStudent(list);break;
case 4: printStudent(list);break;
}
}
System.out.println("프로그램을 종료하였습니다.");
}
private static void printStudent(ArrayList<Student> list) {
System.out.println("이름\t 주소\t 전화번호\t");
for(int i=0; i<list.size(); i++) {
Student s = list.get(i);
System.out.println(s.getName() + "\t" + s.getAddr() + "\t" + s.getPhone());
}
}
private static void deleteStudent(ArrayList<Student> list) {
String name;
System.out.print("삭제할 학생의 이름을 입력하세요: ");
name = sc.next();
// Student s1 = new Student("홍길동", "서울", "1111");
// Student s2 = new Student("홍길동", "서울", "1111");
//
// if(s1.equals(s2)) { //두 객체가 동일한 값을 가지고 있는가?
//
// }
// ArrayList<Student> list2 = new ArrayList<Student>();
// list2.add(new Student("홍길동", "서울", "1111"));
// list2.add(new Student("이순신", "부산", "2222"));
//
// Student s1 = new Student("홍길동", "서울", "1111");
// list2.remove(s1);
// //리스트의 요소를 삭제할 때에 인덱스가 아닌 객체를 매개변수로 전달하면 equals 메소드를 요구한다.
// for(int i=0; i<list.size(); i++) { //이렇게 하면 equals가 없어도됨.( Student 클래스에서 만들어준 equals)
// Student s = list.get(i);
// if(s.getName().equals(name)) {
// list.remove(i);
// }
// }
for(Student s: list) { //Student 클래스에서 equals 메소드를 생성해줌.
if(s.getName().equals(name)) {
list.remove(s); //s객체를 지워라
System.out.println(name + "학생의 정보를 삭제하였습니다.");
}
}
}
private static void searchStudent(ArrayList<Student> list) {
String name;
System.out.print("검색할 학생의 이름을 입력하세요: ");
name = sc.next();
for(Student s: list) {
if(s.getName().equals(name)) {
System.out.println("검색한 학생의 정보는 다음과 같습니다.");
System.out.println(s.getName()+"\t" + s.getAddr()+"\t" + s.getPhone());
}
}
}
private static void insertStudent(ArrayList<Student> list) {
String name, addr, phone;
System.out.print("등록할 학생의 이름을 입력하세요: ");
name = sc.next();
System.out.print("등록할 학생의 주소을 입력하세요: ");
addr = sc.next();
System.out.print("등록할 학생의 전화번호을 입력하세요: ");
phone = sc.next();
Student s = new Student(name, addr, phone);
list.add(s);
System.out.println("학생의 정보를 등록하였습니다.");
}
}
Reference
この問題について([Day 11]公費0411-内容整理), 我々は、より多くの情報をここで見つけました https://velog.io/@rlaehdus0417/Day-11-국비-0411-내용-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol