Java/문제풀이

Java 문제 풀이 Class

pakms980319 2024. 3. 12. 12:03

1번

 

답:

4번

필드는 클래스 내에서 private로 선언하는 것이 바람직하다


2번

 

답:
4번

생성자의 실행을 끝내고자 할 때, return; 을 사용할 수 있다


3번

 

답:

3번

Power[] p = new Power[10] 으로 수정


4번

 

답:

2번

배열의 크기만 정의된 상태이다


5번

 

답:

(1)

오버로딩은 반환 타입에 연관하지 않지만 매개변수가 달라야 한다


6번

 

(1) this()를 이용하여 생성자를 수정하라

class TV {
   int size;
   String manufacturer;
   public TV() {
      this(32, "LG");
   }
   public TV(String manufacturer) {
      this(32, manufacturer);
   }
   public TV(int size, String manufacturer) {
      this.size = size;
      this.manufacturer = manufacturer;
      System.out.println(size + "인치 " + manufacturer);
   }
}

 

(2) new TV(); 와 new TV("삼성"); 을 실행하면 실행 결과는 각각 무엇인가?

32인치 LG

32인치 삼성

 

(3) 65인치 "삼성" TV 객체를 생성하는 코드를 작성하라

new TV(65, "삼성");

 

(4) this()를 이용하는 장점은 무엇인가?

같은 클래스 내의 다른 생성자를 호출하여 사용할 수 있어 코드 작성량을 줄이고 관리가 용이해진다


7번

 

답:

aPerson.age = 17; 은 접근 지정자 private로 인해 main에서 작성될 수 없다

 

[객체 지향 프로그래밍에 가장 적합한 방법]

객체 지향 프로그래밍에서는 클래스의 주요 필드는 private로 해두고, public 속성의 set/get 메서드를 별도로 만들어 이 메서들 통해서만 필드를 접근하게 하여 필드의 무결성을 유지하는 것이 좋다


8번

 

답:

@Getter
@Setter
class Power {
    private int kick;
    private int punch;
}
public class Example {
    public static void main (String args[]) {
        Power robot = new Power();
        robot.setKick(10);
        robot.setPunch(20);
    }
}

9번

 

답:

자바에서는 객체를 임의로 소멸 시킬 수 없다

이것은 개발자에게 매우 편리한, 편의적인 일이다

참조하는 레퍼런스가 하나도 없는 객체를 가비지, 쓰레기 라고 판단하고

이를 가용 메모리로 자동 수집하는 GC, 가비지 컬렉터를 진행시킨다.

응용프로그램에서 자바 플랫폼에게 이 과정을 지시하고자 하면 System.gc() 코드를 호출하면 된다.


10번

 

답:

(1) s = new String("Hello " + n); 에서 s에 새로운 객체로 바뀔 때 마다 기존의 객체는 참조하는 변수가 없어져 가비지가 발생한다

(2) 에서는 가비지가 발생하지 않는다. c가 new String("aa")를 참조하고 있기 때문이다


11번

 

답:

4번

멤버 변수에서는 static 멤버에 접근 가능하지만, static 멤버에서는 일반 멤버에 접근하지 못한다


12번

 

 

답:

(1), 클래스의 일반 멤버 변수는 객체의 생성 없이 사용할 수 없다


13번

 

답:

int sum = f(2, 4); 가 틀렸다

main 메서드는 static이므로 일반 멤버 메서드를 호출 할 수 없고, static으로 선언된 메서드만 호출이 가능하다

따라서 f() 메서드를 main에서 호출하려면 public static int f() 로 메서드를 선언 및 정의해야한다


14번

 

답:

1. final public void f() 메서드 내 x++;이 잘못되었다

- x는 final로 선언된 변수이므로 정의 후 값의 변경이 불가능하다

 

2. class SpecialRect extendds Rect 가 잘못되었다

- final로 작성된 class는 상속을 해줄 수 없다

 

3. public void f() 메서드가 잘못 되었다

- final로 작성된 메서드는 overriding 할 수 없다


15번

 

답:

더 이상 사용하지 않는 객체를 가비지라 한다

가비지가 많아지면 가용 메모리의 양이 계속해서 줄어들어 이를 해결하기 위해 가비지 컬렉션이 필요하다

가비지 컬렌션 기능은 사용자가 직접 객체를 관리하지 않아 예측하지 못한 논리적 에러가 발생할 수 있지만 그만큼 객체를 자동으로 관리받아 편의성이 생겨 코딩 부담을 덜 수 있게 된다


16번

 

답:

  default public protected private
같은 패키지 클래스 O O O X
다른 패키지 클래스 X O X X

출처

 

https://security-nanglam.tistory.com/212

 

[명품 JAVA] 4장 연습문제 (클래스와 객체)

[4장 1번] 자바의 클래스와 객체에 대한 설명 중 틀린 것은?1. 클래스 바깥에 전역 변수는 선언할 수 없다.2. 클래스는 객체를 생성하기 위한 틀이다.3. 클래스의 멤버 변수를 필드라고 부르며, 클

security-nanglam.tistory.com

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

Java Up/Down Casting 문제 1  (0) 2024.03.11
Java 상속 문제풀이 1  (0) 2024.03.08
Java 문제 풀이 2  (1) 2024.03.07
Java 문제 풀이 1  (0) 2024.03.06
0. 변수 문제풀이  (0) 2024.02.28