자바의 클래스는, 밖에 드러내도 되는 것들을 public,
함부로 바꾸면 안되는 것들을 private 으로 구분해서 나타내고있어요.
왜냐구요?
클래스는 고객의 비밀번호나 결제정보와 같이 민감한 정보들도 담고 있기 때문에
클래스의 모든 정보를 손쉽게 바꿀 수 있으면 큰일나겠죠?!
대부분 멤버 변수를 private이라고 선언한다.
ABOUT 생성자
말 그대로 생성될 때 호출되는 자
정확히 뭐가 생성되냐면 클래스가 생성이 될 때
그 생산자가 호출이 최초로 되면서 이제 클래스 객체 초기화에 필요한 것들을 만들어주는 과정!
public class User {
string name; //이름
int age; //나이
String hobby; //취미
//클래스의 생성자
public User (String_name, int_age, String_hobby){ //매개변수 받을 준비
name = _name;
age = _age;
hobby = _hobby;
//이 자리에다가 코드를 실행하게 된다.
} //사실 지금이게 컴파일러가 이미 그 클래스 자체에 디폴트값으로 저장시켜둔 것
public static void(string[] args) {
}
}
이 때 생성자 개념은 클래스와 이름이 일치해야한다.
이름, 나이, 취미를 넣어줄 공간이 필요하다.
Getter
- 정보(어떤 오브젝트 혹은 변수의 값) 를 가져오는 메소드 규칙을 말합니다.
- return type(반환형식) 은 참조할 맴버변수의 자료형과 일치해야합니다!
- 이름 앞에 get 을 붙이고 뒤에는 리턴할 맴버변수의 이름 혹은 해당 변수를 직관적으로 표현하는 단어가 와야합니다 eg) int getLength();
정해진 문법
메소드를 하나 선언한다(메소드를 통해 바꿀 것이다)
그럼 메소드의 규칙이 어떻게 되냐?
Setter
- 정보(어떤 오브젝트 혹은 변수의 값) 를 바꾸는 메소드 규칙을 말합니다.
- return type(반환형식)은 void 혹은 값의 설정 결과를 알려줄 수 있는 type이어야 합니다.
- argument는 수정할 맴버변수와 같은 type이어야 합니다.
- 이름 앞에 set을 붙이고 뒤에는 수정할 맴버변수의 이름 혹은 해당 변수를 직관적으로 표현하는 단어로 해야합니다. eg) void setLength(int length);
Tip parameter와 Argument의 차이점
Parameter는 함수 혹은 메소드 정의에서 나열되는 변수명이다.
반면 Argument는 함수 혹은 메서드를 호출할 때, 전달 혹은 입력되는 실제 값이다.
Argument의 실체는 변수이고 Argument의 실체는 값!
Getter, Setter 만들기
// Getter
public String getTitle() {
return this.title;
}
// Getter
public String getTutor() {
return this.tutor;
}
// Getter
public int getDays() {
return this.days;
}
// Setter
public void setTitle(String title) {
this.title = title;
}
// Setter
public void setTutor(String tutor) {
this.tutor = tutor;
}
// Setter
public void setDays(int days) {
this.days = days;
}
Getter, Setter 사용하기
Course course = new Course();
System.out.println(course.getTitle());
System.out.println(course.getTutor());
System.out.println(course.getDays());
course.setTitle("웹개발의 봄 스프링");
course.setTutor("남병관");
course.setDays(35);
System.out.println(course.getTitle());
System.out.println(course.getTutor());
System.out.println(course.getDays());
클래스 & 메소드 예제
조건
1) Tutor 클래스를 만들고, 이름(name)과, 경력(bio) 멤버 변수를 추가
2) 그리고 각 변수를 private 으로 선언하고, Getter와 Setter를 만들어라
3) 마지막으로, 기본 생성자와, name/bio 입력받는 생성자 두 개를 만들어라
public class Tutor {
// 멤버 변수
private String name;
private String bio;
// 기본생성자
public Tutor() {
}
// 생성자
public Tutor(String name, String bio) {
this.name = name;
this.bio = bio;
}
// Getter
public String getName() {
return this.name;
}
public String getBio() {
return this.bio;
}
// Setter
public void setName(String name) {
this.name = name;
}
public void setBio(String bio) {
this.bio = bio;
}
}
참고한 출처: https://manorgass.tistory.com/56 [생각하는 개발자]
'Back-end Skill > JAVA' 카테고리의 다른 글
Java #2 자바와 객체지향 . 객체! 객체!,, 객체지향이 중요하다고? 근데 그게 뭔데? (0) | 2021.11.18 |
---|---|
Java #1 한 번만 작성하면, 어디서든 동작한다. from JVM (0) | 2021.11.18 |
TIL 29일차 개발일지_ 자바 클래스 (0) | 2021.11.05 |
내일배움캠프 28일차 개발일지_ JAVA 기초문법#4편_조건문 (0) | 2021.11.03 |
27일차 개발일지_ JAVA 기초문법#4편_반복문 (0) | 2021.11.03 |