private 멤버 변수
public 메소드
Getter
, Setter
// User 클래스에 name과 email이 은닉화된 상태로 캡슐화되어있다.
public class User {
// private로 변수를 캡슐화해서 외부 접근을 제한한다.
private String name;
private String email;
// 생성자를 통해 초기화한다.
public User(String name, String email) {
this.name = name;
this.email = email;
}
// Setter, Getter를 통해 외부 접근 방법을 제공한다.
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String name) {
this.email = email;
}
}
public static void main(String[] args) {
User user = new User("John", "test@gmail.com");
person.setName("Doe");
person.setEmail("test2@gmail.com");
System.out.println(user);
}
abstract
interface
public abstract class Car {
public Car(String name) {
System.out.println("Car 생성자 호출 : " + name);
}
public abstract void run();
}
public class Bus extends Car {
public Bus() {
super("Bus");
System.out.println("Bus 기본 생성자");
}
@Override
public void run() {
System.out.println("run bus");
}
}
extends
public class Parent {
public int i = 5;
public void printI() {
System.out.println("parent + printI() : " + i);
}
}
public class Child extends Parent {
public int i = 15; // 필드에 대한 오버라이딩
public void printI() { // 메소드에 대한 오버라이딩
System.out.println("child + printI() : " + i);
}
}
public class Exam1 {
public static void main(String[] args) {
Parent p1 = new Parent();
System.out.println(p1.i); // 5
p1.printI(); // parent + printI() : 5
Child c1 = new Child();
System.out.println(c1.i); // 15
c1.printI(); // child + printI() : 15
}
}
interface
implements
// 다형성 - 메소드 오버로딩 예시
public class StandardOutput {
public void println(boolean b) {
System.out.println(b);
}
public void println(int i) {
System.out.println(i);
}
public void println(double d) {
System.out.println(d);
}
public void println(String s) {
System.out.println(s);
}
public static void main(String[] args) {
StandardOutput output = new StandardOutput();
output.println(100);
output.println("hello");
output.println(10.5);
output.println(false);
}
}
2023/10/20 작성
2023/11/10 내용 구성 변경 및 추가