Back-end/Java (89) 썸네일형 리스트형 [Java - 기본] 접근 제어자 사용 - 클래스 레벨 ✅ 클래스 레벨의 접근 제어자 📚 클래스 레벨의 접근 제어자 규칙 클래스 레벨의 접근 제어자는 public, default만 사용할 수 있다. private, protected는 사용할 수 없다. public 클래스는 반드시 파일명과 이름이 같아야 한다. 하나의 자바 파일에 public 클래스는 하나만 등장할 수 있다. 하나의 자바 파일에 default 접근 제어자를 사용하는 클래스는 무한정 만들 수 있다. ✏️ PublicClass.java package access.a; public class PublicClass { public static void main(String[] args) { PublicClass publicClass = new PublicClass(); DefaultClass1 cla.. [Java - 기본] 접근 제어자 사용 - 필드, 메서드 ✅ 필드, 메서드 레벨의 접근 제어자 ✏️ AccessData package access.a; public class AccessData { public int publicField; int defaultField; private int privateField; public void publicMethod() { System.out.println("publicMethod 호출 " + publicField); } void defaultMethod() { System.out.println("defaultMethod 호출 " + defaultField); } private void privateMethod() { System.out.println("privateMethod 호출 " + privateField).. [Java - 기본] 접근 제어자 종류 ✅ 접근 제어자의 종류 private : 모든 외부 호출을 막는다. default(package-private) : 같은 패키지 안에서 호출은 허용한다. protected : 같은 패키지 안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다. public : 모든 외부 호출을 허용한다. 순서대로 private이 가장 많이 차단하고, public이 가장 많이 허용한다. private → default → protected → public 📚 package-private 접근 제어자를 명시하지 않으면 같은 패키지 안에서 호출을 허용하는 default 접근 제어자가 적용된다. 💡 default default라는 용어는 해당 접근 제어자가 기본값으로 사용되기 때문에 붙여진 이름이지만, 실제로는 .. [Java - 기본] 접근 제어자 이해2 ✅ 문제 해결 - private 앞선 문제를 근본적으로 해결하는 방법은 volume 필드를 Speaker 클래스 외부에서는 접근하지 못하게 막는 것이다. ✏️ Speaker - volume 접근 제어자를 private으로 수정 package access; public class Speaker { private int volume; // private 사용 ... } private 접근 제어자는 모든 외부 호출을 막는다. 따라서 private이 붙은 경우 해당 클래스 내부에서만 호출할 수 있다. 그림을 보면 volume 필드를 private을 사용해서 Speaker 내부에 숨겼다. 외부에서 volume 필드에 직접 접근할 수 없게 막은 것이다. volume 필드는 이제 Speaker 내부에서만 접근할 수 .. [Java - 기본] 접근 제어자 이해1 ✅ 접근 제어자 자바는 public, private 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. ✅ 접근 제어자 필요한 이유 스피커에 들어가는 소프트웨어를 개발한다고 하자. 스피커의 음량은 절대로 100을 넘으면 안된다는 요구사항이 있다. ✏️ Speaker 스피커는 음량을 높이고, 내리고, 현재 음량을 확인할 수 있는 단순한 기능을 제공한다. 요구사항 대로 스피커의 음량은 100까지만 증가할 수 있다. 절대 100을 넘기면 안된다. package access; public class Speaker { int volume; Speaker(int volume) { this.volum.. [Java - 기본] 패키지 규칙 ✅ 패키지 규칙 패키지의 이름과 위치는 폴더(디렉토리) 위치와 같아야 한다. (필수) 디렉토리 경로 검색 단축키 : command + shift + G 패키지 이름은 모두 소문자를 사용한다. (관례) 패키지 이름의 앞 부분은 일반적으로 회사의 도메인 이름을 거꾸로 사용한다. com.company.myapp과 같이 사용 (관례) 이 부분은 필수는 아니다. 하지만 수많은 외부 라이브러리가 함께 사용되면 같은 패키지에 같은 클래스 이름이 존재할 수 있다. 이렇게 도메인 이름을 거꾸로 사용하면 이런 문제를 방지할 수 있다. 내가 오픈소스나 라이브러리를 만들어서 외부에 제공한다면 꼭 지키는 것이 좋다. 내가 만든 애플리케이션을 다른 곳에 공유하지 않고, 직접 배포한다면 보통 문제가 되지 않는다. ✅ 패키지와 계층.. [Java - 기본] 패키지 - import ✅ import 패키지가 다르다고 pack.a.User와 같이 항상 전체 경로를 적어주는 것은 불편하다. 이때는 import를 사용하면 된다. ✏️ PackageMain2 package pack; import pack.a.User; public class PackageMain2 { public static void main(String[] args) { Data data = new Data(); User user = new User(); // import 사용으로 패키지 명 생략 가능 } } 🖥️ 실행 결과 코드에서 첫줄에는 package를 사용하고, 다음 줄에는 import를 사용할 수 있다. import를 사용하면 다른 패키지에 있는 클래스를 가져와서 사용할 수 있다. import를 사용한 덕분에 코.. [Java - 기본] 패키지 - 시작 ✅ 패키지 - 시작 쇼핑몰 시스템을 개발한다고 가정해보자. 다음과 같이 프로그램이 매우 작고 단순해서 클래스가 몇 개 없다면 크게 고민할 거리가 없겠지만, 기능이 점점 추가되어서 프로그램이 아주 커지게 된다면 어떻게 될까? 아주 작은 프로그램 Order User Product 큰 프로그램 User UserManager UserHistory Product ProductCatalog ProductImage Order OrderService OrderHistory ShoppingCart CartItem Payment PaymentHistory Shipment ShipmentTracker 컴퓨터는 보통 파일을 분류하기 위해 폴더, 디렉토리라는 개념을 제공한다. 자바도 이런 개념을 제공하는데, 이것이 바로 패키지.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음