캡슐화 : 멤버변수에 저장된 값을 보호하고, 은닉하는 것
올바른 값만 저장될 수 있도록 처리해주는 방법
캡슐화를 적용시키는 방법
1. 모든 멤버변수 앞에 private를 붙인다
2. setter/getter 메서드 작성
메서드를 사용하는 이유
1. 높은 재사용성 : 한 번 만들어 놓은 메서드는 몇 번이고 호출 가능
2. 중복된 코드의 제거 : 반복되는 문장들을 하나의 메소드로 작성 가능
3. 프로그램의 구조화 : 큰 규모의 프로그램에서는 프로그램의 구조를 단순화시키는 것이 필수적
소스코드 - Car.java
public class Car {
//멤버변수 : 클래스 내부에 선언된 변수
private String name; //이름
private int output; //배기량
private int year; //연식
private String color; //색깔
private int current_speed;//속도
private boolean sidong=false;
//setter method
public void setName(String n) {
name = n;
}
public void setOutput(int ou) {
if(ou<1 || ou > 1500) {
System.out.println("입력받은 값은 음수를 입력하거나 1500을 넘어서 저장이 불가합니다.");
return; //탈출문
}
output = ou;
}
public void setYear(int y) {
if (y < 0 || y > 2019) {
System.out.println("년도는 음수 또는 2019를 초과하여 입력할 수 없습니다.");
year = 2019; // default = 2019
} else {
year = y;
}
}
public void setColor(String c) {
color = c;
}
public void setCurrent_speed(int cu) {
current_speed = cu;
}
public void setSidong(boolean si) {
sidong = si;
}
//getter method
public String getName() {return name;}
public int getOutput() {return output;}
public int getYear() {return year;}
public String getColor() {return color;}
public int getCurrent_speed() {return current_speed;}
public boolean getSidong() {return sidong;}
}
소스코드 - CarHandling.java
public class CarHandling {
public static void main(String[] args) {
// TODO Auto-generated method stub
Car morning = new Car();
//setter method를 통해 값 저장
morning.setName("모닝"); //setName이라는 메서드 호출하면서 "모닝"문자열을 매개변수로 전달
morning.setOutput(1000);
morning.setColor("blue");
morning.setYear(2019);
//getter method 사용
System.out.println("차의 이름="+morning.getName());
System.out.println("차의 배기량="+morning.getOutput());
System.out.println("차의 현재속도="+morning.getCurrent_speed());
System.out.println("차의 연식="+morning.getYear());
}
}
다음 글
'Java' 카테고리의 다른 글
[Java] 정적 메서드 (0) | 2019.07.17 |
---|---|
[Java] 객체지향 프로그래밍 - 다형성 (0) | 2019.07.16 |
[Java] (Eclipse)이클립스 자주쓰는 단축키 (0) | 2019.07.12 |
[Java] 객체지향 프로그래밍 - 추상화 (0) | 2019.07.12 |
[Java] 탈출문 - break, continue (0) | 2019.07.11 |