java 9

산야(Sanya)·2024년 1월 9일

java 족보

목록 보기
10/28

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

+--------------+
| BankAccount  |    ref1, ref2
| balance: 0   | <--------------+
+--------------+                 |
                                |
                                |

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

  • 생성자는 객체를 초기화하는 메소드로, 객체가 생성될 때 호출되어 객체의 상태를 설정합니다. 생성자는 클래스의 이름과 동일하며, 리턴 타입이 없습니다.

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

  • 디폴트 생성자는 매개변수가 없는 생성자를 의미합니다. 클래스 내에 명시적으로 생성자를 작성하지 않으면 자바 컴파일러가 자동으로 디폴트 생성자를 추가합니다.

4.생성자의 용도는?

  • 생성자의 주요 용도는 객체의 초기화입니다. 객체를 생성할 때 필요한 초기화 작업을 수행하여 객체가 올바른 상태로 사용될 수 있도록 합니다.

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

  • null은 참조형 변수가 객체를 참조하지 않을 때 사용되는 값입니다. 초기화되지 않은 참조형 변수나 객체가 소멸된 경우에 null 값이 할당됩니다.

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

public static void main(String[] args) {
TV myTV = new TV("LG", 2017, 32); //LG에서 만든 2017년 32인치
myTV.show();
}

//출력
LG에서 만든 2017년형 32인치 TV
public class TV {
    String brand;
    int year;
    int inch;

    public TV(String brand, int year, int inch) {
        this.brand = brand;
        this.year = year;
        this.inch = inch;
    }

    public void show() {
        System.out.println(brand + "에서 만든 " + year + "년형 " + inch + "인치 TV");
    }

    public static void main(String[] args) {
        TV myTV = new TV("LG", 2017, 32); // LG에서 만든 2017년 32인치
        myTV.show();
    }
}

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()); //우 입니다.
public class Grade {
    int math;
    int science;
    int english;

    public Grade(int math, int science, int english) {
        this.math = math;
        this.science = science;
        this.english = english;
    }

    public double average() {
        return (math + science + english) / 3.0;
    }

    public String getGrade() {
        double avg = average();
        if (avg >= 90) {
            return "우";
        } else {
            return "미만";
        }
    }

    public static void main(String[] args) {
        int math = 90, science = 80, english = 80;
        Grade me = new Grade(math, science, english);
        System.out.println("평균은 " + me.average());
        System.out.println(me.getGrade()); // 우 입니다.
    }
}

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

  • 노래의 제목을 나타내는 title
  • 가수를 나타내는 artist
  • 노래가 발표된 연도를 나타내는 year
  • 국적을 나타내는 country

또한 Song 클래스에 다음 생성자와 메소드를 작성하라.

  • 생성자 2개: 기본 생성자와 매개변수로 모든 필드를 초기화하는 생성자
  • 노래 정보를 출력하는 show() 메소드
  • main() 메소드에서는

Song 객체로 생성하고
show()를 이용하여 노래의 정보를 다음과 같이 출력하라.

출력:
1978년, 스웨덴 국적의 ABBA가 부른 "Dancing Queen"

 public class Song {
    String title;
    String artist;
    int year;
    String country;

    public Song() {
    }

    public Song(String title, String artist, int year, String country) {
        this.title = title;
        this.artist = artist;
        this.year = year;
        this.country = country;
    }

    public void show() {
        System.out.println(year + "년, " + country + " 국적의 " + artist + "가 부른 \"" + title + "\"");
    }

    public static void main(String[] args) {
        Song song = new Song("Dancing Queen", "ABBA", 1978, "스웨덴");
        song.show();
    }
}

9.package의 용도는?

  • 이름 공간 제공: 패키지는 클래스들을 그룹화하여 이름 공간을 제공합니다. 이로써 서로 다른 패키지에 속한 클래스들 간에 중복된 이름을 가질 수 있습니다.
  • 접근 제어: 패키지는 접근 제어를 통해 외부에서 패키지 내의 클래스, 메소드, 변수 등에 접근을 제어할 수 있습니다.
  • 유지보수 용이성: 코드를 관리하고 유지보수하기 쉽도록 관련된 클래스들을 패키지로 묶어둠으로써 코드의 구조를 잘 정리할 수 있습니다.
  • 가독성 향상: 패키지는 코드의 구조를 명확하게 표현함으로써 가독성을 향상시킵니다.

10.package 의 기본적인 명명법(이름짓는법)은?

  • 패키지의 이름은 소문자로 작성되며, 일반적으로 도메인 이름을 역순으로 사용합니다. (예: 'com.example.myproject')
  • 패키지의 이름에는 특수 문자나 공백을 포함할 수 없습니다.
    패키지 이름은 계층 구조를 나타내는 데 사용되므로 의미 있는 이름을 선택하는 것이 좋습니다.
  • 패키지 이름은 Java 소스 코드 파일의 맨 첫 줄에 위치합니다.
profile
개발일지

0개의 댓글