본문 바로가기
솔루션모음/파워자바 중간점검 Exercise Lab

[파워자바] 8장 중간점검문제 Exercise Lab Exercise 솔루션 답지

by 이얏호이야호 2023. 9. 13.

중간점검문제

p.179

1. 크게 나누면 기초형 변수와 참조형 변수가 존재한다.

2. 잘못된 값이 저장되는 것은 사전에 체크할 수 있고 또 필요할 때마다 값을 다시 계산하여서 반환할 수도 있다.

3. 필드는 클래스 안에 선언되는 변수이다. 지역 변수는 메소드 안에 선언되어서 메소드 안에서만 사용되는 변수이다.

 

p.185

1. 중복 메소드(overloading method)

2. 값을 반환하지 않는 메소드를 나타낸다.

3.

public void printMyName() {

String name;

System.out.println("이름을 입력하시오 :");

Scanner scan = new Scanner(System.in);

name = scan.nextLine();

System.out.println(name);

}

 

 

p.187

1.

TV
-isOn : bool
-channel: int
+turnOn()
+turnOff()
+setChannel(int)
+getChannel(); int
 

LAB

1.

(1)

class Box {

// 필드 정의

int width;

int length;

int height;

// 메소드 정의

}

(2)

class Box {

public int getWidth() {

return width;

}

public void setWidth(int width) {

this.width = width;

}

public int getLength() {

return length;

}

public void setLength(int length) {

this.length = length;

}

public int getHeight() {

return height;

}

public void setHeight(int height) {

this.height = height;

}

// 필드 정의

int width;

int length;

int height;

// 메소드 정의

}

(3)

public int getVolume() {

return width*length*height;

}

(4)

public void print() {

System.out.println("가로:" + width);

System.out.println("세로:" + length);

System.out.println("높이:" + height);

}

 

(5)

public class BoxTest {

public static void main(String[] args) {

 

Box box1;

}

}

(6)

box1 = new Box();

(7)

box1.setWidth(100);

box1.setLength(100);

box1.setHeight(100);

(8)

System.out.println(box1.getVolume());

1000000

(9)

Box box2;

box2 = new Box();

box2.setWidth(200);

box2.setLength(200);

box2.setHeight(200);

(10)

box1 = box2;

box1.print();

1000000가로:200세로:200높이:200

 

(1)

class Box {

// 필드 정의

int width;

int length;

int height;

// 메소드 정의

}

(2)

class Box {

public int getWidth() {

return width;

}

public void setWidth(int width) {

this.width = width;

}

public int getLength() {

return length;

}

public void setLength(int length) {

this.length = length;

}

public int getHeight() {

return height;

}

public void setHeight(int height) {

this.height = height;

}

// 필드 정의

int width;

int length;

int height;

// 메소드 정의

}

(3)

public int getVolume() {

return width*length*height;

}

(4)

public void print() {

System.out.println("가로:" + width);

System.out.println("세로:" + length);

System.out.println("높이:" + height);

}

 

(5)

public class BoxTest {

public static void main(String[] args) {

 

Box box1;

}

}

(6)

box1 = new Box();

(7)

box1.setWidth(100);

box1.setLength(100);

box1.setHeight(100);

(8)

System.out.println(box1.getVolume());

1000000

(9)

Box box2;

box2 = new Box();

box2.setWidth(200);

box2.setLength(200);

box2.setHeight(200);

(10)

box1 = box2;

box1.print();

1000000가로:200세로:200높이:200

 

(1)

class Box {

// 필드 정의

int width;

int length;

int height;

// 메소드 정의

}

(2)

class Box {

public int getWidth() {

return width;

}

public void setWidth(int width) {

this.width = width;

}

public int getLength() {

return length;

}

public void setLength(int length) {

this.length = length;

}

public int getHeight() {

return height;

}

public void setHeight(int height) {

this.height = height;

}

// 필드 정의

int width;

int length;

int height;

// 메소드 정의

}

(3)

public int getVolume() {

return width*length*height;

}

(4)

public void print() {

System.out.println("가로:" + width);

System.out.println("세로:" + length);

System.out.println("높이:" + height);

}

 

(5)

public class BoxTest {

public static void main(String[] args) {

 

Box box1;

}

}

(6)

box1 = new Box();

(7)

box1.setWidth(100);

box1.setLength(100);

box1.setHeight(100);

(8)

System.out.println(box1.getVolume());

1000000

(9)

Box box2;

box2 = new Box();

box2.setWidth(200);

box2.setLength(200);

box2.setHeight(200);

(10)

box1 = box2;

box1.print();

1000000가로:200세로:200높이:200

 

Exercise

1. 설정자에서 매개 변수를 통하여 잘못된 값이 넘어오는 경우, 이를 사전에 차단할 수 있다. 필요할 때마다 필드값을 계산하여 반환할 수 있다. 접근자만을 제공하면 자동적으로 읽기만 가능한 필드를 만들 수 있다.

 

2.

class Television {

private String model;

 

void setModel(String b) { // 설정자

model = b;

}

 

String getModel() { // void->String

return model;

}

}

 

public class TelevisionTest {

public static void main(String[] args) {

Television t = new Television(); // ()을 붙여주어야 함!

t.setModel("STV-101");

String b = t.getModel(); // 객체 참조 변수 t를 적어주어야 함.

}

}

 

3.

 

(1)

public String getTitle() {

return title;

}

 

public void setTitle(String title) {

this.title = title;

}

 

public String getDirector() {

return director;

}

 

public void setDirector(String director) {

this.director = director;

}

 

public String getActors() {

return actors;

}

 

public void setActors(String actors) {

this.actors = actors;

}

(2)

Movie
-title : String
-director : String
-actor : String
+getTitle()
+getDirector()
+getActor()
+setTitle()
+setDirector()
+setAcotr()

 

(3)

public class Movie

{

private String title, director, actors;

 

public String getTitle() {

return title;

}

 

public void setTitle(String title) {

this.title = title;

}

 

public String getDirector() {

return director;

}

 

public void setDirector(String director) {

this.director = director;

}

 

public String getActors() {

return actors;

}

 

public void setActors(String actors) {

this.actors = actors;

}

}

(4)

Movie m = new Movie();

m.setTitle("Transformer");

 

4.

(1) 은행, 정기 예금 계좌, 보통 예금 계좌, 고객

(2) SavingsAccount, CheckingAccount, Customer

(3)

Account: 계좌 번호, 소유자 이름, 잔액, deposit(), withdraw()

SavingsAccount extends Account: 이자율, 이자계산()

CheckingAccount extends Account: 카드번호(수표번호), 부도여부

Customer: 이름, 주소, 소유한 계좌번호

 

class Account {

String AccNumber;

String ownerName;

int balance;

 

void deposit(int amount) {

balance += amount;

}

 

void withdraw(int amount) {

if (balance > amount)

balance -= amount;

}

}

 

class CheckingAccount extends Account {

String cardNumber;

boolean status;

}

 

 

댓글