java-캡슐화

ezzange·2022년 8월 31일
0

java

목록 보기
13/16
post-thumbnail

캡슐화

public와 private
데이터를 안전하게 관리하기 위한 것

package com.green.kdt;
//Modifiers 클래스에 접근하면 퍼블릭이므로 내부 변수에 접근가능
public class Modifiers {
		//멤버 필드 
		 int a;
		 protected int b;
		 int c;//생략의 경우 package
		 private int d;
		
	//메서드
		 void disp() {
			 d=40;
		 }
	//생성자
}
package com.green.kdt;

import com.green.nowon.Nowon;

public class ModifierTest {
	public static void main(String[] args) {
		//메모리 공간할당--> 객체를 만든다
		
		Modifiers obj= new Modifiers();
	//Modifiers 클래스에 접근해서 힙메모리에 할당
	//new 키워드 다음에 생성자 호출해서 새로운 객체를 만들어서 이어준다는뜻
	//Modifiers 참조변수 obj를 여기에 새로 생성한 객체에 이어주는것
		
	//객체를 만들면 인스턴스 변수(필드)공간이 메모리에 공간할당 되는데
	//외부(다른 클래스)에서 그 객체 변수 접근할 때 제한을 거는 접근 제한자 	
		obj.a=10;
		obj.b=20;//객체는 obj가 가리키는 것이니객체는 obj라고 보심 대고
		obj.c=30;//obj에 있는 변수 a랑 b랑 c를 값을 매기는게 접근이다.
		
		//obj.d=40;//private
		//private제한은 동일클래스까지 제한
		
		Nowon nowon=new Nowon();
		nowon.x=100;
		//nowon.m=100; private
		//nowon.y=200; protected : 동일 package가 아니므로 접근불가
		//		    	protected는 다른 package라면 상속인 경우 접근가능
		//nowon.z=300; package : 동일 package가 아니므로 접근불가
	
	}

}
package com.green.nowon;

public class Nowon {
	
	public int x; 
	protected int y;
	int z;
	private int m;

    
    final int a = 10; // 파이널은 선언과 동시에 초기값을 꼭 설정해줘야한다.
	//초기값을 수정할 수 없기때문이다.
	final static double PI=3.141592;
	//final static + 상수 
	//상수 : 대문자로 조합해서 만들고 합성어는 '_'사용
	
    void setA(int a) {
		//this.a=a; final이란 수정불가 --> 대입이 안된다는 말 
	}
	
}
package com.green.kdt;
//package가 다를때 import해줘야 사용가능
import com.green.nowon.Nowon;
						//extends 확장시킨다
public class NowonSub extends Nowon{
	
	void disp() {
		x=10;
		y=20;//package+상속인경우까지 가능
		//z=30;//동일package까지 가능 지금은 안됌
		//m=40;private
	
	}
	
}

0개의 댓글