7일차: JAVA 생성자

jk·2024년 1월 9일
0

kdt 풀스택

목록 보기
10/127



1. 아래의 BankAccount(소스 PPT 참고) 에 대하여 노란색으로 표시된 부분을 메모리 그림 그리시오.




2. 생성자란 무엇인가요?

  • 그 class 를 초기화하는 함수입니다.
  • Java 에서는 생성자를 넣지 않은 경우에도 자동으로 default 생성자를 컴파일합니다.



3.디폴트 생성자에 대하여 설명하시오.

  • parameter 를 공백으로 두고 그 class 를 default 값으로 초기화하는 함수.
  • 정수는 0, 실수는 0.0 이 기본으로 적용된다.



4.생성자의 용도는?

  • 참조형 변수를 선언하고 초기화한다.



5. null 에 대하여 설명하시오.

  • 참조형에서만 가능하다.
  • 참조형 값을 null 로 두면 메모리와 연결된 주소가 지워진다.
  • null 인 참조형 변수를 사용하려고 하면 NullPointerException 이 발생한다.



6.아래의 TV 클래스를 만드시오.

public static void main(String[] args) {
TV myTV = new TV("LG", 2017, 32); //LG에서 만든 2017년 32인치
myTV.show();
}
//
//출력
LG에서 만든 2017년형 32인치 TV
// 코드
class TV {
    String brand;
    int year;
    int inch;
    TV(String brand, int year, int inch) {
        brand = this.brand;
        year = this.year;
        inch = this.inch;
    }
    void show() {
    	String print = new String();
        print += this.brand;
        print += "에서 만든 ";
        print += this.year;
        print += "년형 ";
        print += this.inch;
        print += " TV";
        System.out.println(print);    
    }
}



7. 아래의 Grade 를 만드시오.

public static void main(String[] args) {
//
    int math, science, english;
    math = 90;
    science = 80; 
    english = 80;
//
    Grade me = new Grade(math, science, english);
    System.out.println("평균은 " + me.average());
    System.out.println(me.getGrade()); //우 입니다.
}
// 코드
class Grade {
    int math;
    int science;
    int english;
    Grade(int math, int science, int english) {
        this.math = math;
        this.science = science;
        this.english = english;
    }
    double average() {
        double avg = ((double)(this.math + this.science + this.english) / 3.);
        return avg;
    }
    String getGrade() {
        double avg = this.average();
        String print = new String();
        if (avg >= 90.) {
            print += "수";
        } else if (avg >= 80.) {
            print += "우";
        } else if (avg >= 70.) {
            print += "미";
        } else if (avg >= 60.) {
            print += "양";
        } else {
            print += "가";
        };
        print += " 입니다.";
        return print;
    }
}



8.노래 한 곡을 나타내는 Song 클래스를 작성하라. Song은 다음 필드로 구성된다.

- 노래의 제목을 나타내는 title
- 가수를 나타내는 artist
- 노래가 발표된 연도를 나타내는 year
- 국적을 나타내는 country
//
또한 Song 클래스에 다음 생성자와 메소드를 작성하라.
//
- 생성자 2개: 기본 생성자와 매개변수로 모든 필드를 초기화하는 생성자
- 노래 정보를 출력하는 show() 메소드
- main() 메소드에서는 
//
Song 객체로 생성하고 
show()를 이용하여 노래의 정보를 다음과 같이 출력하라.
//
출력:
1978년, 스웨덴 국적의 ABBA가 부른 "Dancing Queen"
// 코드
class Song {
    String title;
    String artist;
    int year;
    String country;
    Song(String title, String artist, int year, String country) {
        this.title = title;
        this.artist = artist;
        this.year = year;
        this.country = country;
    }
    void show() {
        String print = new String();
        print += this.year;
        print += "년, ";
        print += this.country;
        print += " 국적의 ";
        print += this.artist;
        print += "가 부른 \"";
        print += this.title;
        print += "\"";
        System.out.println(print);
    }
}
public static void main(String[] args) {
    String title = "Dancing Queen";
    String artist = "ABBA";
    int year = 1978;
    String country = "스웨덴";	
    Song song = new Song(title, artist, year, country);
    song.show();
}
profile
Brave but clumsy

0개의 댓글