메서드 호출
1 | 다음 설명 중 맞는 것은? (1)자바의 기본 자료형은 3개이지만 객체자료형이 추가되었으므로 사실상 자바의 자료형은 총 4개로 보아야 한다. 정답: O (2)객체 자료형도 자료형이다 정답: O (3)객체 자료형은 메서드의 매개변수로 전달할 수 없다. 정답: X (4)메서드 호출 시 객체 자료형을 인수로 전달하는 방법을 call by value 라 한다 정답: X (5)메서드 호출 시 기본 자료형을 인수로 전달하는 방법을 call by reference 라 한다 정답: X |
2 | (가)~(아)까지 빈 칸에 알맞는 코드를 작성하세요 public class Hero { int hp=10; boolean fly=false; String name="메가맨"; Bullet bullet; public void setHp(int hp) { //hp 값을 변경하고 싶다 (가) this.hp = hp; } public void setFly(boolean fly) {//fly 값을 변경하고 싶다 (나) this.fly = fly; } public void setName(String name) {//name 값을 변경하고 싶다, 암시적묵시적방법/ 객체자료형 -> 대문자 (다) this.name= name; } public void fire(Bullet bullet){//bullet 을 다른 무기로 변경하고 싶다 (라) this.bullet = bullet; // 객체 자료형도 자료형이다. } public static void main(String[] args) { Hero hero = new Hero(); hero.setHp(마); // 10 hero.setFly(바); // true hero.setName(사); // 이름 hero.fire(아); // new Bullet() // call by reference } } |
4 | 다음 설명 중 틀린 것은? class Computer { String color = "yellow"; int price = 50; } class UseComputer { public void setColor(Computer p){ //(가) p.color="red"; } public int setPrice(int price) { price=5; //(나) } public static void main(String[] args) { Computer com = new Computer(); com.color = "black"; UseComputer up = new UseComputer(); up.setColor(com); // (다) up.setPrice(com.price);//(라) //com.price=x; System.out.println(com.price);// (마) } } (1)(가)의 메서드 인수로 넘겨지는 컴퓨터는 색상이 빨간색으로 변경된다 (2)(라)에서 com 변수가 가리키는 컴퓨터의 값이 (나)로 전달되어 지므로 이 컴퓨터의 가격이 5로 변경 된다 (3)(마)의 출력 결과는 50이다, 즉 컴퓨터의 가격에는 변함이 없다. (4)(다)는 call by reference 이다 (5)(라)는 call by value 이다 (6) call by reference 에 의해 넘겨진 객체는, 해당 메서드에 의해 영향을 받을수도 있다. (7) call by value 에 의해 넘겨진 값은, 그 값을 보유했던 객체에 영향을 끼친다 |
7 | 아래 코드에 대한 설명 중 틀린 것은? class Computer{ int speed=300; } class UseComputer { public void setting(Computer c , int s){ c.speed=s; s=50; //(다) } public static void main(String[] args) { int k=500; //(가) UseComputer uc = new UseComputer(); Computer com = new Computer();//(바) com.speed=100; uc.setting(com , k); //(나) System.out.println(com.speed); //(라) System.out.println(k); //(마) } } (1) (가) 변수는 지역변수로서 stack 영역에 쌓인다. X (2) (나)에서 메서드 호출시 com변수에는 객체의 주소값이, k변수에는 변수의 값이 들어있다. (3) (다)에 의해 (가)의 변수값이 50으로 변경될 것이다. (4) (라)에서 출력되는 결과는 100 이다. (5) (마)에서 출력되는 결과는 500 이다. |
'빅데이터UI전문가 > JAVA' 카테고리의 다른 글
[JAVA] 빅데이터UI전문가 DAY08 - 오버로딩 (0) | 2021.08.20 |
---|---|
[JAVA] 빅데이터UI전문가 DAY08 - 은닉화 (0) | 2021.08.20 |
[JAVA] 빅데이터UI전문가 DAY07 - 클래스 패키지와 임포트 문제풀이 (0) | 2021.08.19 |
빅데이터UI전문가 DAY07 - 클래스 (0) | 2021.08.19 |
빅데이터UI전문가 DAY06 - 클래스 (0) | 2021.08.18 |