반응형
1. 은닉화 및 접근제어자
자바에서는 public 과 private 라는 접근제어자가 존재한다.
public 은 모든 클래스에서 해당 맴버변수를 호출할 수 있으며, private 는 해당 클래스 내에서만 호출이 가능하다.
그러나, 만약 private의 맴버변수를 다른 클래스에서도 호출하고 싶다면, getter 와 setter 를 이용하면 된다.
getter 는 private의 맴버변수를 다른 클래스에서 해당 값을 가져오며, setter는 private 의 맴버변수에 값을 넣을 때 사용 된다.
getter 와 setter 를 쉽게 정의하는 방법은 인텔리제이에서 command + N 을 누르면 쉽게 정의 가능하다.
package kr.co.infopub.chapt018;
public class Geo {
// 은닉화와 접근제한자
// public 일 경우
// public double latitude;
// public double longitude;
// private 일 경우
private double latitude;
public double longitude;
// private 일 경우 다른 클래스에서 맴버변수로 접근할 수 없다.
// 그래서 이럴 경우에넌 getter 와 setter 를 사용하여 맴버변수 값을 사용한다.
// getter -> 맴버변수를 외부에 노출시킬 때 getter
public double getLatitude() {
return latitude;
}
// setter -> 맴버변수에 값을 넣을 때 setter
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
}
package kr.co.infopub.chapt018;
public class GeoMain {
public static void main(String[] args) {
// [1] Geo 가 public 일 경우
/*
Geo geo1 = new Geo();
geo1.latitude = 37.1234;
geo1.longitude = 127.4241234;
System.out.println(geo1.latitude);
System.out.println(geo1.longitude);
*/
// [2] Geo 가 private 일 경우
Geo geo1 = new Geo();
geo1.setLatitude(37.1234); // 값 넣기
geo1.setLongitude(127.4241234);
System.out.println(geo1.getLatitude()); // 값 가져오기
System.out.println(geo1.getLongitude());
}
}
2. 생성자
생성자는 객체를 생성하면서 맴버변수에 값을 넣고 싶을 때, 생성자를 사용한다. 생성자는 new 키워드에 의해서만 호출되는 메서드이다.
이전에는 set 메서드를 통해 맴버변수에 대입할 수 있었는데, 객체생성과 동시에 값을 대입하게 할 때 생성자를 사용한다.
생성자는 가장 먼저 호출되어 객체를 사용하기 위한 기본준비를 하는 "리턴이 없는(void) 메서드이다."
package kr.co.infopub.chapt018;
public class Geo {
private double test;
private double test2;
public Geo(double test, double test2) {
this.test = test;
this.test2 = test2;
}
public double getTest() {
return teste;
}
// setter -> 맴버변수에 값을 넣을 때 setter
public void setTest(double test) {
this.test = test;
}
public double getTest2() {
return test2;
}
public void setTest2(double test2) {
this.test2 = test2;
}
}
packge kr.co.infopub.chapt018;
public class GeoMain {
public static void main(String[] args){
Geo geo1 = new Geo(37.123, 123.23) // 인자가 2개인 생성자
}
}
반응형
'언어 > java' 카테고리의 다른 글
HashSet & HashMap (0) | 2023.09.08 |
---|---|
ArrayList & LinkedList (0) | 2023.09.05 |
인터페이스(Interface) (0) | 2023.08.28 |
언어특징 및 개발환경 (0) | 2023.08.11 |
[JAVA/자바] 메소드 오버라이딩 (0) | 2023.04.02 |