ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쉽게 배우는 자바 프로그래밍 2판 4장 연습문제
    JAVA/연습문제 2022. 10. 7. 15:33
    반응형

    # 개발 공부하는 초보자가 작성한 답안이니 정답이 아닐 수 있습니다!!!

     

    1. 다음 중 틀린것은?

    1. 필드는 초기화하지 않아도 된다.
    2. 생성자 없이 클래스를 정의해도 된다.
    3. 생성자는 일반적으로 필드를 초기화한다.
    4. 필드는 생성자보다 먼저 선언해야 한다.
    🧤정답🧤
    4번 - 필드는 클래스내에 어디서든 선언이 가능하므로 순서에는 영향이 없다.

     

     

     

    2. 클래스의 구성 요소와 가장 거리가 먼 것은?

    1. 필드
    2. 지역 변수
    3. 메서드
    4. 생성자
    🧤정답🧤
    2번 - 클래스는 필드와 메서드, 생성자로 구성

     

    3. 하나의 클래스는 하나의 객체 인스턴스만 생성할 수 있다. (O, X)

    🧤정답🧤
    X - 여러 개를 생성할 수 있다.

     

    4. 정적 메서드는 객체를 생성하지 않고도 접근할 수 있다. (O, X)

    🧤정답🧤
    O - 정적(클래스) 메서드는 객체 생성전에도 사용 가능하다.

     

    5. 다음 코드에는 문법적인 오류가 없다. (O, X)

    📢주어진 값📢
    public class ShowError {
      public static void main(String[] args) {
         ShowError s = new ShowError();
      }
    }
    🧤정답🧤
    O - 객체를 생성하는 조건과 일치 (클래스 이름 변수 = new 클래스이름();)

     

    6. ___은 대입하는 객체에 따라서 메서드가 다르게 동작하도록 구현하는 기술이다. 객체 지향 프로그래밍의 특징 중 하나이다.

    🧤정답🧤
    다형성 - 객체 지향 프로그래밍의 특징(캡슐화, 상속, 다형성)

     

    7. 다음 코드에서 오류를 찾아 수정하라.

    📢주어진 값📢
    class Util {
    	public double findPi() {
    		return 3.14;
    	}
    }
    
    
    public class MathTest {
    	public static void main(String[] args) {
    		Util n;
    		System.out.println(u.findPi());
    	}
    }

     

    🧤정답🧤
    
    class Util {
    	public double findPi() {
    		return 3.14;
    	}
    }
    
    
    public class MathTest {
    	public static void main(String[] args) {
    //      Util n;  -> 객체 생성 부분의 구성을 잘못 설정하여 오류가 발생한 것으로 아래와 같이 변경.  
            Util u = new Util();
    		System.out.println(u.findPi());
    	}
    }

     

    8. 다음 코드의 실행 결과는?

    📢주어진 값📢
    class Sklass {
    	static int i;
    
    	Sklass() {
    		i++;
    	}
    }
    
    class Oklass {
    	int i;
    
    	Oklass() {
    		i++;
    	}
    }
    
    public class PrintTest {
    	public static void main(String[] args) {
    		new Sklass();
    		new Sklass();
    		Sklass s = new Sklass();
    		new Oklass();
    		new Oklass();
    		Oklass o = new Oklass();
    		System.out.printf("s.i = %d, o.i = %d", s.i, o.i);
    	}
    }
    🧤정답🧤
    s.i = 3, o.i = 1
    
    // new 연산자를 통할 때 마다 인스턴스 변수는 새로 생성되는 반면에 정적 변수는 새로 생성되지 않는다.

     

    9. 다음 코드에서 오류를 찾아 수정하고, 그 이유를 설명하라.

    📢주어진 값📢
    public class Student {
    	String name;
    	
    	Student(String name) {
    		this.name = name;
    	}
    	
    	Student() {
    		System.out.println("no argument");
    		this("no name");
    	}
    }
    🧤정답🧤
    
    public class Student {
    	String name;
    
    	Student(String name) {
    		this.name = name;
    	}
    
    	Student() {
    		this("no name");          // this를 사용할 때에는 항상 맨 위에 사용해야한다.
    		System.out.println("no argument");
    	}
    }

     

     

    10. 다음 코드에서 오류를 찾아 수정하라.

    📢주어진 값📢
    public class FooTest {
        public static void main(String[] args) {
            show();
        }
        
        public void show() {
            System.out.println("show");
        }
    }
    🧤정답🧤
    public class Student {
    	public static void main(String[] args) {
    		show();
    	}
    
    	public static void show() {             // static을 선언해줘야지 객체를 생성하지 않아도 사용가능
    		System.out.println("show");
    	}
    }

     

     

    반응형

    댓글

Designed by Tistory.