본문 바로가기

JAVA/객체 코드

객체 3대 특징 - 은닉성( 캡슐화 )

  객체 3대 특징 
  1. 은닉성(캡슐화)
  :외부와의 차단으로 변수들을 관리 할 수 있다
  class의 내부에서 접근(처리)이 가능하도록 접근지정자로 제어할 수 있다
  값을 바꾸게 할 수도 접근금지(읽기전용)시킬수도 있음.
  setter/getter
 
  private(개인적인) -> member variable에 설정: class만에서 만 지정되는 속성
  public(대중적인) -> member method에서 설정
  protected(특정) -> 상속에 관련
 

class member variable(변수) -> 99% private

메소드 70%정도가 public


 
  2. 상속성
  3. 다형성

 

 

 

 


main

		MyClass cls = new MyClass();

MyClass = 클래스형 , heap에 저장
cls = instance(객체)

 

 

//cls.number = 123; 

에러, 은닉성에 위배

 

cls.name = "Hi"; 

에러는 없지만 은닉성 위배

 

 

 

 

		System.out.println(cls);
		System.out.println(cls.getThis());
		//답 : MyClass MyClass(int number)
		//답 : public MyClass(int number, String name)

Class

class member variable(변수) -> 99% private

메소드 70%정도가 public

 

 

 

 

this.변수

	this.number = number; 
	//생성 후 private int number의 변수, 외부에서 들어온 변수와 이름을 동일하게 사용하고 싶을때 

	//Ex)
	public void setNumber(int number) {
		this.number = number; 
	}

 

 

 

** setter와 getter

Class 변수설정시 private을 붙여 클래스 외부에서 접근할
수 없도록 셋팅 했을 때, 

대신 getter와 setter메소드를 추가하면 이 멤버변수들의 값을 어디서나 읽고 변경할 수 있도록 됨(main에서 사용가능)

메인
	t.setChannel(10);
	System.out.println("CH:"+t.getChannel());

클래스
	private int channel;

	public int getChannel() {
		return channel;
	}
	public void setChannel(int channel) {
		this.channel = channel;
	}

 

메인에서 채널 수정이 가능하다

 

 

 

 

 

 

클래스 전체

public class MyClass {
	//clss -> 변수는 외부에서 접근을 시키지 않는다
	
	
	
	// class member variable(변수) -> 99% private
	private int number; //내부에서만(MyClass)에서만 접근 가능
	public String name; //외부접근은 무조건 가능
	
	//class member method
	

	
	//메소드 70%정도가 public
	//외부에서 호출 안되는 함수는 public 대신 private를 사용해도 됨(Ex random()..)
	public void funsc() { //처리
		this.method();
	}
	
	public MyClass getThis() {
		return this;
	}
	
	public void method() {
		
	}

	public int getNumber() {//매개변수 0번째에 존재하고 있는 자기자신의 참조 =public int getNumber()
		return number;
	}

	public void setNumber(int number) {
		this.number = number; //생성 후 private int number의 변수, 외부에서 들어온 변수와 이름을 동일하게 사용하고 싶을때 
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	

	
}

'JAVA > 객체 코드' 카테고리의 다른 글

객체 3대 특징  (0) 2020.06.03
constructor 생성자  (0) 2020.06.02
객체 // 야구게임  (0) 2020.06.01
객체//Sorting  (0) 2020.06.01
Object Oriented Programming(객체지향 프로그래밍) 이론  (0) 2020.06.01