관리 메뉴

CASSIE'S BLOG

[슈퍼코딩] 27강 클래스 정보 은닉 본문

PROGRAMMING/JAVA

[슈퍼코딩] 27강 클래스 정보 은닉

ITSCASSIE1107 2023. 12. 10. 17:42

 

자바에서 객체는 살아있는 존재같음.

 

P > P > D > P

 

 

main이라는 곳은 시장 장터같은 공간임. 지금 개인정보를 다 노출했으니까 정보 은닉화가 안되어있는 경우다.

 

객체의 정보 은닉화가 중요한 이유
-코드 보완성 증가
-코드 유지보수성 증가
-캡술화 실천 

 

 

나 자신만 알고싶은 거 - private
점점 너비 넓어짐 

 

프로젝트명이 LearningJava 그리고 src 폴더에서 package를 만들 수 있음. 
다르게 하면 안되더라 

 

 

일반적으로 Java 프로젝트에서는 테스트 코드를 별도의 패키지에 위치시키는 것이 일반적인 관례입니다. 이는 주로 소스 코드와 테스트 코드를 구분하여 유지보수를 용이하게 하기 위함입니다.

 

my-java-project
|-- src
|   |-- com
|       |-- example
|           |-- mypackage
|               |-- MyClass.java
|-- test
    |-- com
        |-- example
            |-- mypackage
                |-- MyClassTest.java

 

 

자바에서 패키지는 일반적으로 소스 코드 파일들을 묶는 논리적인 그룹화를 제공합니다. 패키지를 만들 때 특정 규칙에 따라 폴더 구조를 따르게 됩니다. 그러나 패키지를 생성하는 위치는 오로지 src 폴더 내에서만 한정되어 있지 않습니다.

 

exercise.chapter_27이라는 패키지를 만들면 실제 파일 시스템에서는 exercise/chapter_27이라는 디렉터리 안에 소스 코드가 위치하게 됩니다.

 

ClassAA와 classB가 classA에 접근이 가능한지 확인해볼거라고함

 

 

package exercise.chapter_27.packageOne;

public class ClassA {
    //public
    public String publicStr;

    public void methodPublic(){};
}

 

 

package exercise.chapter_27.packageOne;

public class ClassAA {
   
    void testPublic(ClassA classA){
        String str = classA.publicStr;
        classA.methodPublic(); //불러올 수 있음
    };
}

 

메서드가 어떤 값을 반환하지 않을 때, 반환 타입을 void로 지정합니다.

그냥 classAA를 쓸 때 classA를 불러올 수 있는지 확인하려고 test함수를 쓰는거니까 void 키워드 쓰는거임. 

반응형