1. public 삽입 여부 - Java 200제 62p
package part_01;
public class Geo { // <- public을 넣으면 에러 public을 빼면 성공 : 왜?
public double latitude = 0.0;
public double longitude =0.0;
}
public class FirsrtStep {
public static void main(String[] args) {
Geo geol = new Geo();
geol.latitude = 36.523;
geol.longitude = 127.845;
System.out.printf("위도:%f, 경도 %f%n", geol.latitude, geol.longitude);
}
}
A :
2. this 참조변수를 사용하는 이유 ??- Java 200제 64p
class Geo{
private double latitude = 0.0;
private double longitude =0.0;
public Geo(double latitude, double longitude) {
this.latitude = latitude; //<- 도데체 왜 사용하는가
this.longitude = longitude; //<- 도데체 왜 사용하는가
}
도데체 왜 this.참조변수 = 인자 를 사용하는가?? 어디에 쓰려고??
아래는 인자가 2개있어서 기본 생성자 Geo geol = new Geo();를 삭제하고 만든 코딩.
그런데 이전처럼 기본 생성자로 객체를 생성할 수 있게 하려면 기본 생성자를 개발자가 만들어야 한다. : 오버로딩
package part_01;
class Geo{
private double latitude = 0.0;
private double longitude =0.0;
public Geo(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
}
public class FirstStep {
public static void main(String[] args) {
Geo geol = new Geo(36.523, 127.845);
System.out.printf("위도:%f, 경도 %f%n", geol.getLatitude(), geol.getLongitude());
Geo geo2 = geol;
System.out.printf("위도:%f, 경도 %f%n", geo2.getLatitude(), geo2.getLongitude());
}
}
class에서 기본 생성자 선언해주고
아래 main에서 다시 호출?? 을 해주면 위에서 이미 기본 생성자 선언하면서 기본 값으로 초기화 ㄱ되었기 떄문에 초기화 값인 0.0000 만 나오는 건가???
그리고 기본 생성자호출 했을 때 특정 값을 나오게 하고 싶으면 위에 기본 생성자 호출한 {} 안에 this()메서드를 사용하라고 한다. ( 제대로 이해한 것이 맞는가?? = 무사히 입력한 값이 나왔다.
3. 유동성 인자??- Java 200제 69p
설명은 이해했는데 코드가 이해가 안감.
4. 출력 시 왜 이름 다르게 했는데 알맞게 나오는 건가?- Java 200제 69p
public class FirstStep {
public static void main(String[] args) {
Geo[] geo = new Geo[] {
new Geo(37.5670, 126.9807), new Geo(47.01, 10.2), new Geo(40.714086, -74.228697)};
Geo[] geo1 = new Geo[3];
geo1[0] = new Geo(37.5670, 126.9807);
geo1[1] = new Geo(47.01, 10.2);
geo1[2] = new Geo(40.714086, -74.228697);
System.out.printf("위도 : %f, 경도 : %f%n", geo1[0].getLatitude(),geo1[0].getLogitude());
System.out.printf("위도 : %f, 경도 : %f%n", geo[1].getLatitude(),geo[1].getLogitude());
}
}
출력은 알맞게 geo1[0]과 geo1[1]에 맞게 출력되었는데 왜 geo1과 geo사이에 차이가 없는걸까??
어차피 위에서 배열 선언할 때 new Geo (~ ~)로 해줘서 알맞게 geo배열을 인식한건가? 아래에서 새롭게 정의하느라고 geo1로 선언해서 geo1도 되고 geo도 되는 건가??
'Programming > Java' 카테고리의 다른 글
[ JAVA 스터디 ] 2회차 복습 - 221106 (0) | 2022.11.11 |
---|---|
[ JAVA 스터디 ] 1회차 복습 - 221023 (0) | 2022.10.23 |
[JAVA] 객체지향 특징 4 가지(캡슐화, 상속, 다형성, 추상화) (0) | 2022.10.21 |
JAVA의 정석 [연습문제] - Chapter04 (0) | 2022.10.14 |
java 구구단 예제 (0) | 2022.10.11 |