본문 바로가기

Java

[Java] 객체지향 프로그래밍 - 캡슐화

캡슐화 : 멤버변수에 저장된 값을 보호하고, 은닉하는 것

           올바른 값만 저장될 수 있도록 처리해주는 방법

 

캡슐화를 적용시키는 방법

  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] 객체지향 프로그래밍 - 다형성

다형성 같은 메서드를 호출해도 결과가 다 다르게 나타남 다양한 방식으로 표현 가능 생성자(Constructor) 객체가 생성할 때 맨 처음 자동으로 호출되는 특수한 메서드 생성자 이름은 클래스 이름과 같다 반환형을..

maribel.tistory.com