728x90
반응형
목차
1. 패키지(package)
2. 패키지 생성하기
3. 접근 제어
4. 메소드 오버라이딩과 접근 제어
1. 패키지(package)
- 연관된 클래스와 인터페이스들을 모아 놓은 것을 말한다. 윈도우의 폴더와 같은 개념이다.
- ex_1) java.lang 패키지에 있는 String과 System 클래스 사용
public class code155 {
public static void main(String[] args) {
java.lang.String name = "Alice";
int age = 10;
java.lang.System.out.println(name + " is " + age + " years old.");
}
}
- ex_2) Scanner 클래스
import java.util.Scanner;
public class code157 {
public static void main(String[] args) {
Scanner scin = new Scanner(System.in);
System.out.print("Enter your name : ");
String name = scin.next();
System.out.println("Your are " + name);
scin.close();
}
}
2. 패키지 생성하기
※ 서로 다른 패키지에 같은 이름의 클래스가 있어도 되지만, 하나의 패키지에 같은 이름의 클래스가 있으면 안 된다.
- 패키지 import 하기
package bookpkg;
public class Book { // 클래스에 public이 붙어야 다른 패키지에서 접근 할 수 있다.
// private 맵버는 자기 클래스 안에서만 접근 가능.
private int code;
private String title;
private int price;
public Book() {}
// 생성자 앞에 public이 붙어야 Book 객체를 생성할 수 있다.
public Book(int code, String title, int price) {
this.code = code;
this.title = title;
this.price = price;
}
// public 메소드는 다른 패키지에서 접근할 수 있다.
public int getCode() {return code;}
public String getTitle() {return title;}
public int getPrice() {return price;}
public void printBookInfo() {
System.out.println("code: " + code);
System.out.println("title: " + title);
System.out.println("price: " + price);
}
}
package usebookpkg;
import bookpkg.Book;
public class UseBook {
public static void main(String[] args) {
// 에러 발생 : 어느 패키지에 있는 클래스 인지 명시해야 한다.
Book bk = new Book(101, "algorithms", 250000);
bk.printBookInfo();
}
}
- 클래스명 앞에 패키지명까지 붙이는 방법
package usebookpkg;
public class UseBook {
public static void main(String[] args) {
bookpkg.Book bk = new bookpkg.Book(101, "algorithms", 250000);
bk.printBookInfo();
}
}
- 패키지를 import 하여 사용하는 방법
package usebookpkg;
import bookpkg.Book;
public class UseBook {
public static void main(String[] args) {
Book bk = new Book(101, "algorithms", 250000);
bk.printBookInfo();
}
}
3. 접근 제어
접근 제어자 | 의미 | |
private | 같은 클래스 내에서만 접근 가능 | 접근이 어렵움. |
디폴트 제어 | 같은 패키지 내에서만 접근 가능함. | |
protected | - 같은 패키지 내에서 접근 가능함. - 다른 패키지에 있는 자식 클래스에서 접근 가능함. |
|
public | 어디에서나 접근 가능함. 제약 x |
4. 메소드 오버라이딩과 접근 제어
- 자식 메소드가 오버라이딩하는 부모 메소드의 접근 제어보다 더 엄격한 제어를 가질 수 없다.
- ex_1)
public class Parent {
public void show() { // 부모 show()는 public 제어
System.out.println("I am parent show()");
}
}
public class Child extends Parent {
// 에러 발생(Cannot reduce the visibility of the inherited method from Parent)
void show() {
System.out.println("I am child show");
}
}
728x90
반응형
'Framwork > Java기초' 카테고리의 다른 글
Chapter 11. 패키지와 클래스들 (16) | 2023.08.15 |
---|---|
Chapter 10. 추상 클래스와 인터페이스 (16) | 2023.08.12 |
Chapter 8. 상속 (5) | 2023.08.06 |
Chapter 7. 클래스와 객체(2) (0) | 2022.11.04 |
Chapter 7. 클래스와 객체(1) (0) | 2022.10.30 |