문제풀이
Review 0527
H_eh
2022. 5. 30. 00:08
- main 함수를 보고 class 만들기
main(){
Book b1 = new Book("멋진 신세계", "올더스 헉슬리");
Book b2 = new Book("더 해빙");
Book b3 = new Book();
}
/*
실행결과) 멋진 신세계 올더스 헉슬리
더 해빙 작가 미상
생성자 호출!!
*/
- 접근제어자
- private → default → protected → public
- private : 해당 클래스에서만 접근 가능
- default : 해당 패키지에서만 접근 가능
- protected : 동일 패키지&해당 클래스를 상속받은 다른 패키지에서 접근 가능
- public : 모든 클래스에서 접근 가능
- this
- 인스턴스 자신을 가리키는 참조변수
- this 참조변수를 사용하여 인스턴스 변수에 접근 가능
- 인스턴스 메소드에서만 사용가능하고 클래스 메소드(static 메소드)에서는 사용이 불가하다
- this()
- 같은 클래스의 다른 생성자를 호출할 때 사용
- 생성자 내부에서만 사용 가능
더보기
class Book {
private String title, author; //인스턴스 변수
Book(String title, String author) {
this.title=title; this.author=author;
info();
}
Book(String t){
this(t, "작자 미상");
}
Book(){
this("생성자 호출!", "");
}
void info() {
System.out.println(title +" "+ author);
}
}
public class Re0527 {
public static void main(String[] args) {
Book b1 = new Book("멋진 신세계", "올더스 헉슬리");
Book b2 = new Book("더 해빙");
Book b3 = new Book();
}
}
- Friend 클래스를 상속받은 ITFriend 클래스 구현
class Friend {
private String name;
private String phone;
Friend(String name, String phone){
this.name = name; this.phone = phone;
}
String get(){
return name+" "+phone;
}
}
Main(){
ITFriend it = new ITFriend("홍길동", "010-111-1111", "컴퓨터");
it.show();
}
//실행결과) 컴퓨터 홍길동 번호 010-111-1111
- super
- 부모 클래스의 멤버에 접근 가능
- 인스턴스 메서드에만 사용가능하고 클래스 메서드(static 메서드)에는 사용불가
- super() 메서드
- 부모 클래스의 생성자 호출
더보기
class Friend {
private String name;
private String phone;
Friend(String name, String phone){
this.name=name; this.phone=phone;
}
String get() {
return name+" "+phone;
}
}
class ITFriend extends Friend {
private String major;
ITFriend(String n, String p, String m){
super(n, p);
major = m;
}
void show(){
System.out.println( major+" "+get() );
}
}
public class Re0527 {
public static void main(String[] args) {
ITFriend it = new ITFriend("홍길동", "010-111-1111", "컴퓨터");
it.show();
}
}
- 5개 정수를 입력받아 합을 구하는 프로그램
- 만약, 정수가 아닌 문자를 입력할 때 발생하는 InputMismatchException 예외를 처리하여 다시 입력받도록 작성
실행결과) 1번째 정수: 1
2번째 정수: a
정수만 입력가능합니다. 다시 입력하세요.
2번째 정수: 2
3번째 정수: 3
4번째 정수: 4
5번째 정수: 5
총합: 15
- continue 문
- 루프 안에서 사용하고, 해당 루프의 나머지 부분을 건너뛰고, 다음 조건식 판단으로 넘어간다.
- break 문
- 루프 안에서 사용하고, 해당 반목문을 종료시킨 뒤, 반복문 다음에 위치한 명령문을 실행한다.
더보기
public class Re0527 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum=0;
int num;
for(int i=0; i<5; i++) {
try {
num = sc.nextInt();
System.out.println((i+1)+"번째 정수: "+num);
sum+=num;
}
catch(InputMismatchException e) {
System.out.println("정수만 입력 가능합니다. 다시 입력하세요.");
sc.next();
i--;
continue;
}
}
System.out.println("총합: "+sum);
}
}
- 실수 9.5를 객체화(boxing) 시키시오.
- 객체화 시킨 9.5를 문자열로 변경하시오.
- 문자열로 변경한 9.5를 기본형값으로 unboxing 하시오.
- 박싱(Boxing)
- 기본타입 데이터 → 래퍼 클래스의 인스턴스로 변환
- Integer num1 = new Integer(7);
- 동등연산자(==) : 인스턴스의 주소값을 비교하게 된다.
- equals() : 인스턴스의 저장된 값의 동등여부를 비교
- 언박싱(UnBoxing)
- 래퍼 클래스 인스턴스에 저장된 값 → 기본타입 데이터로 꺼내는 과정
- int int1 = num1.intValue();
- intValue() : Integer 객체에서 int 형 값을 꺼내는 메서드
- parseInt() : String 객체에서 int 형 값을 꺼내는 메서드
- static 이므로 Integer 생성하지 않고 parameter만 넣어서 메서드 수행 가능
- int i = Integer.parseInt(str);
더보기
public class Re0527 {
public static void main(String[] args) {
Double d1 = new Double(9.5);
String str1 = d1.toString();
Double d2 = d1.doubleValue();
Double d3 = Double.valueOf(str1); //박싱
double dd3 = Double.parseDouble(str1); //언박싱
double dd4 = d3.doubleValue(); //언박싱
}
}
- equals (두 원의 면적이 같은지 비교), toString 메서드를 사용하여 완성하시오. (반지름은 30이다)
Main(){
Circle a = new Circle(30);
Circle b = new Circle(30);
System.out.println("반지름: "+a);
System.out.println("반지름: "+b);
if(a.equals(b)) {
System.out.println("같은 원");
}
else {
System.out.println("다른 원");
}
}
더보기
class Circle {
private int r;
Circle(int r) {
this.r = r;
}
public boolean equals(Object obj){
if(this.r == ((Circle)obj).r ) {
return true;
}
else {
return false;
}
}
public String toString() {
return r+"";
}
}
public class Re0527 {
public static void main(String[] args) {
Circle a = new Circle(30);
Circle b = new Circle(30);
System.out.println("반지름: " +a);
System.out.println("반지름: " +b);
if(a.equals(b)) {
System.out.println("같은 원");
}
else {
System.out.println("다른 원");
}
}
}
- 인터페이스 Po를 만들고 추상메서드 pr 을 만드시오. 상속받아 구현하시오.
main(){
Po p = new Point();
p.pr(30000, "java");
p.pr("python");
}
/*
실행결과) java책은 30000원
python
*/
더보기
interface Po {
public void pr(int a, String b);
public void pr(String b);
}
class Point implements Po {
public void pr(int a, String b) {
System.out.println(b +"책은 "+a+"원");
}
public void pr(String b) {
System.out.println(b);
}
}
public class Re0527 {
public static void main(String[] args) {
Po p = new Point();
p.pr(30000, "java");
p.pr("python");
}
}
참고
728x90
728x90