문제풀이

Review 0606

  • Scanner로 입력 받은 이름(문자열), id(문자열)를 한 줄마다 파일(test02.txt)에 저장해라.
    “그만” 입력하면 종료시켜라. 
    “그만” 입력하기 전까지의 문자열을 파일에 저장해라.(break, FileWriter 사용)
    실행 결과) 홍길동 hong
    이길동 lee
    그만
    • FileWriter 줄바꿈 하기위해서 \r\n 을 사용한다.
    • 입력받은 이름이 "그만" 이면 반복문을 빠져나온다. "그만"이 아니면 id를 입력받아 저장한다
더보기
public class Q06 {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(System.in);
		
		FileWriter fw = new FileWriter("test02.txt");
		
		while(true) {
			String name = sc.next();
			if(name.equals("그만")) {
				break;
			}
			else {
				String uid = sc.next();
				fw.write(name +" " + uid+"\r\n");
			}
		}
		fw.close();
	}
}

 

  • Tv클래스와 main()를 보고 Tv클래스를 상속받은 Tv1클래스를 작성하시오
//Tv 클래스
class Tv {
	private int size;
	
	Tv(int size){
		this.size=size; 
	}
	
	protected int intgetsize(){
		return size; 
	}
}
//메인 클래스
public class Q07 {
	public static void main(String[] args) {
		Tv1 t=new Tv1(20, "삼성");
		t.show();	 //삼성 20인치 Tv 출력
	}
}
더보기
class Tv1 extends Tv {
	private String name;
	
	Tv1(int size, String name){
		super(size);
		this.name = name;
	}
	 void show() {
		 System.out.printf("%s %d인치 Tv", name, super.intgetsize());
	 }
}

 

  • main()를 보고 클래스를 작성하시오
    • toString() 재정의하여  객체정보를 문자열로 반환한다.
    • 재정의 하지 않으면 클래스 이름과 주소값이 반환된다.
main(){
    Point p = new Point(3,4);
    System.out.println(p); //3.4출력
}
더보기
class Point {
	private int a, b;
	Point(int a, int b){
		this.a=a;		this.b=b;
	}
	
	public String toString() {
		return a+"."+b;
	}
}

 

 

 

  • main()를 보고 인터페이스를 작성하시오.
  • 인터페이스명은 Re, 모든 메소들들을 인터페이스안에서 선언하고 
  • show함수는 default로 설정, area는 abstract로 설정
    • default라는 예약어를 적지 않으면 다 추상메소드로 인식
main(){
    Re r=new Rec(10,20);
    r.show();	 //"사각형!!" 출력
    System.out.println(“면적” + r.area());
}
/*
실행결과) 사각형!!
면적 200
*/
더보기
interface Re {
	public int area();
	default void show() {
		System.out.println("사각형!!");
	}
}

class Rec implements Re {
	private int a, b;
	Rec(int a, int b) {
		this.a = a;		this.b = b;
	}
	public int area() {
		return a*b;
	}
}

 

 

 

  • main 함수를 보고 클래스를 작성하시오
    • this() : 같은 클래스의 다른 생성자 호출
main(){
    Book b1=new Book(“멋진 신세계”, “올더스헉슬리”);
    Book b2=new Book(“더 해빙”);
    Book b3=new Book(); 
}
/*
실행 결과) 멋진 신세계 올더스헉슬리
더 해빙 작가 미상
생성자 호출!!
*/
더보기
class Book {
	String title, author;
	
	Book(String t, String a){
		title = t;	author = a;
		System.out.println(t +" "+ a);
	}
	Book(String t){
		this(t, "작가 미상");
	}
	Book(){
		this("생성자 호출", "");
	}
}

 

 

  • Boolean 값 false를 “false”라는 문자열로 변환해라.
  • 문자열 “36.5”를 double 타입 실수로 변환해라.
  • 문자열 “35”를 정수 35로 변환해라.
더보기
public class Q11to13 {
	public static void main(String[] args) {
		// 11
		Boolean b1 = false;
		String str = b1.toString();
		System.out.println(str + str);	//falsefalse

		// 12
		String str1 = "36.5";
		Double d1 = Double.parseDouble(str1);
		System.out.println(str1 + str1);	//36.536.5
		System.out.println(d1 + d1);		//73.0
		
		// 13
		String str2 = "36";
		Integer i1 = Integer.parseInt(str2);
		System.out.println(i1 + i1);		//72
	}
}

 

 

 

 

  • 다음 main()를 보고 추상 클래스와 추상메소드를 작성하시오
  • (total 함수는 배열 값(1,2,3,4,5) 총합 리턴받는 함수)
main(){
    Ab c=new Cd();
    System.out.println(c.total(new int []{1,2,3,4,5}));
}
더보기
abstract class Ab {
	abstract int total(int[] a);
}

class Cd extends Ab {
	@Override
	int total(int[] a) {
		int sum=0;
		for(int i=0; i< a.length; i++) {
			sum+=a[i];
		}
		return sum;
	}
}

 

 

 

 

 

 

 

 

 

 

728x90
728x90

'문제풀이' 카테고리의 다른 글

이름에 해당하는 id 맞추기 게임  (0) 2022.06.08
ArrayList에 랜덤 숫자 저장하기, Map에서 검색하기  (1) 2022.06.06
객체배열과 ArrayList  (0) 2022.05.30
Review 0527  (0) 2022.05.30
백준 10818 - 1차원 배열  (0) 2022.05.17