- 객체의 속성은 필드를 통해서 정의
- 객체의 기능은 메소드를 통해서 정의
[접근 제한자][예약어] class 클래스명 { ... }
- public으로 선언된 클래스는 아무런 제약 없이 사용할 수 있다
- default는 같은 패키지 내에서는 아무 제약 없이 사용가능 하나 다른 패키지는 사용 불가
public class Member { //필드, 생성자, 메소드 정의 ... }
클래스명 변수명 = new 클래스명();
// new 연산자와 클래스의 생성자를 사용하여 객체 생성 Member member = new Member();
[접근 제한자][예약어] 자료형 변수명[ = 초기값];
public class Member { // 필드 정의 public String name; // null private int age = 20; // 생성자, 메소드 정의 ... }
Member member = new Member(); // 도트(.) 연산자를 사용해서 필드에 접근 member.name; // 접근 가능 member.age; // 에러 발생
ex)public class User { //필드 선언 public String id = "hong"; protected String address; String name = "홍길동"; private String password; // 메소드 선언 public void test(int number) { // 지역변수에는 접근 제한자를 붙이지 않는다 int num = 20; //지역 변수는 반드시 사용하기 전에 초기화해야 한다. System.out.println(num); //매개변수는 메소드 호출 시 반드시 값이 전달되어 오기 때문에 ㅜㄹ력이 가능하다 System.out.println(number); // 필드는 클래스 전역에서 사용이 가능하다(생성자, 메소드) // 미 초기화 시 JVM이 기본값으로 초기화한다 System.out.println(password); password = "123456789"; System.out.println(password); } }
public class User { // 필드 선언 private String id; private String password; private String name; private int age; private char gender; // 생성자 선언 // 기본 생성자 // 객체 생성만을 목적으로 사용 public User() { } // 생성자를 private으로 선언하면 외부에서 절대로 객체를 생성할 수 없다 // 클래스 내부에서만 생성자를 호출해서 객체를 생성할 수 있다 //private User() { //} // 매개변수가 있는 생성자 (아이디, 패스워드, 이름) // 객체 생성과 동시에 전달된 값들을 매개변수로 받아서 필드를 초기화하는 목적으로 사용 public User(String id, String password, String name) { this.id = id; this.password = password; this.name = name; //나머지 필드(age, gender)은 JVM이 초기값을 설정해준다 } // 매개변수가 있는 생성자(아이디 ,패스워드, 이름, 나이, 성별) public User(String id, String password, String name, int age, char gender) { // 클래스 내에서 문자열 매개변수 3개를 가지는 생성자를 호출한다) this(id,password,name); this.age = age; this.gender = gender; } // 메소드 선언 public String information() { // 메소드 내부에서는 this()를 사용해서 생성자를 호출할 수 없다 // this(id,password,name); return String.format("%s, %s, %s, %d, %c\n", this.id, this.password, this.name, this.age, this.gender); } } ```java