[면접예상] 20230621

neul·2023년 6월 21일
0

면접예상

목록 보기
10/36
post-thumbnail

🌵아래의 BankAccount 객체에 대하여 그림을 그리시오.

BankAccount ref1 = new BankAccount();
BankAccount ref2 = ref1;

🌵this 의 용도 2가지를 설명하시오.

1. 개체가 생성 되었을 때 자기 자신을 뜻함

  • 파라미터로 받을 때 자기 자신과 지역변수를 구분

2. this생성자

  • BankAccount(){}를 호출할 수 없을 때, this();를 이용한다. 이 때, 생성자에 작성해야한다. (다른 생성자 호출)
  • 다른 생성자에서 생성자 호출 할때는 this생성자

🌵아래의 클래스를 만드시오.

TV myTV = new TV("LG", 2017, 32);
myTV.show();
//LG 에서 만든 2017년형 32인치 TV

class TV{
	String brand; // datamember
	int year;
	int inch;
	
	TV(String brand, int year, int inch){ // 생성자
		this.brand = brand;
		this.year = year;
		this.inch = inch;
	}
	
	void show() {
		System.out.println(brand + "에서 만든" + year + "년형" + inch + "인치 TV");
	}
}
public class Java_02 {
	public static void main(String[] args) {

			//LG 에서 만든 2017년형 32인치 TV
        	TV myTV = new TV("LG", 2017, 32);
        	myTV.show();
    }
}

🌵생성자에 대하여 설명하시오.

  • 클래스 이름과 똑같은 함수
  • 코드를 클래스 안에 넣는다.
  • 데이터타입이 없다. -> 리턴도 없다.

🌵디폴트 생성자란 무엇인가?

  • 개발자가 클래스 안에 생성자를 안 넣게 되면, 기본적으로 컴파일러가 넣어버린다. (= 디폴트 생성자)
  • 개발자가 생성자를 하나라도 만들면, 컴파일러가 디폴트생성자를 안 만든다.

🌵아래를 프로그래밍 하시오.

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

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

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

  • 생성자 2개: 기본 생성자와 매개변수로 모든 필드를 초기화하는 생성자
  • 노래 정보를 출력하는 show() 메소드
  • main() 메소드에서는 1978년, 스웨덴 국적의 ABBA가 부른 "Dancing Queen"을
    song 객체로 생성하고 show()를 이용하여 노래의 정보를 다음과 같이 출력하라.

1978년 스웨덴국적의 ABBA가 부른 Dancing Queen

class SONG{
	int year;
	String title;
	String artist;
	String country;
	
	SONG(int year, String country, String artist, String title){
		this.year = year;
		this.country = country;
		this.artist = artist;
		this.title = title;
	}
	
	void song2() {
		System.out.println(year + "년 " + country + "국적의 " + artist + "가 부른 " + title);
	}	
}



public class Java_02 {
	public static void main(String[] args) {
    SONG sing = new SONG(1978, "스웨덴", "ABBA", "Dancing Queen");
        	sing.song2();
	}
}

🌵패키지란?

  • 클래스들의 모음집
  • 패키지를 통해 라이브러리끼리 구분이 가능하다.
  • 사용하는 이유 : 클래스명의 고유성을 보장하기 위함
  • 서로 다른 용도의 라이브러리를 도입할 때 이름이 충돌하는 클래스들이 있을 수 있는데, 이럴 때 패키지 기능을 사용하여 클래스의 이름이 충돌하는 것을 방지할 수 있다.

🌵정보은닉이란? = 접근제한 = 문법도입(4가지의 접근제한자)

클래스 내부에서 사용할 변수나 메서드를 private로 선언해서 외부에서 접근하지 못하도록 하는 것을 객체지향에서 '정보은닉(information hiding)'이라 한다.

캡슐화

  • 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶는다.
  • 실제 구현 내용 일부를 외부에 감추어 은닉한다.

접근 제어자
:객체 지향 프로그램에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 이러한 예약어를 '접근 제어자(access modifier)'라고 한다.

🌵접근 제한자 4가지를 정리 하시오.

  • public : 외부 클래스 어디에서나 접근이 가능

  • protected : 같은 패키지 내부와 상속 관계의 클래스에서만 접근 할 수 있다. 그 외 클래스에서는 접근이 불가능

  • private : 같은 클래스 내부에서만 접근할 수 있다.

  • default :디폴트값이며 같은 패키지 내부에서 접근할 수 있다.

🌵로컬 변수에 접근제한자가 안붙는 이유?

: 로컬변수는 기본적으로 중괄호 안에만 살아있어서 뭘 붙이든 의미 없다.

profile
🍙

0개의 댓글

관련 채용 정보