2024. 8. 8. 02:37ㆍ■ JAVA REVIEW & PRACTICE/INDIVISUAL
뛰어나신 실력을 가지신 여러 튜터님, 고퀄의 강의와 유튜브, 뛰어나신 실력을 가지신 동기분들께 아무리 여러번 계속 설명을 들어도 "아, 이거다! " 라는 배움에 대한 깨달음이 전혀 생기지 않아 좌절하고 고민하던 중 나와 레벨이 거의 비슷하신 동환님께 누구의 도움 없이 함께 코드 작성을 해보자는 제안을 해봤다.
그 제안은 동환님의 동의로 바로 실천이 되어 서로 갖고 있는 얕은 지식으로 "그거 뭐였더라.. 여기선 어떻게 하는거더라.. 이런 형태였나..?" 라며 이것 저것 넣어보니 세상에... 무언가가 만들어지긴 하더라... 내가 그동안 이렇게 해보질 않았기 때문에 그 자리에 정체되었던건가 싶었다. 이 코드 몇줄에 기분이 좋아서 둘이 박수치고 행복해했다. (정말 위로가 많이되는 우리 팀 동환님 S2)
주제는 주희와 동환이의 아이디(=신분증) 만들어보기
클래스: Identification 으로 이름을 지음
1. 먼저 src 폴더에 Identification.java 파일 만들어주기
2. 클래스 이름 Identification 만들어주고
3. 중괄호 안에 Id에 어떤 내용이 들어가면 넣을지 고민해보고 이름, 국적, 눈색깔, 머리색깔, 키, 몸무게 를 넣기로 결정
무조건 클래스는 프라이빗으로 만들라고 배웠는데 우선은 퍼블릭 써보기로 결정 (getter/setter 안쓰고 그냥 해보려고)
4. 여기서 값을 주냐 마냐 고민하다가 콘솔창에 질문에 대한 입력값 넣었을 때 나오게 하고 싶어서 우선 값 할당 안해주기로 결정
5. 밑에 public Identification() { } 넣어 생성자를 만들어줌. 여기서 이 생성자는 매개변수가 없는 기본생성자로 만듬
6. 메인페이지에 돌아가 객체 생성을 해줌 각각 값을 넣어줌
7. 프린트를 System.out.println(id); 로 했더니 콘솔창에 주소값이 나옴.. 엥?
8. 챗지피티를 통해 문제를 찾으려고 노력해봄 (다른 팀 현님께서 조언해주신건데 내가 이때 챗지피티에 내가 작성한 모든 코드를 넣어 문제가 뭐냐고 물어봤고 거기서 나온 결과 값을 복사 붙여넣기로 확인했더니 그 방법은 추천하지 않으시고 발전할 수가 없다고 하셔서 모든 코드의 복붙은 앞으로도 절대 하지 말라고 해주심!)
9. toString이란걸 배웠고 이건 클래스에 가서 메서드로 입력해줘야 한다고 알게됨
여기서 toString 이란 객체에 있는 우리가 설정해준 값을 출력해주기 위해 사용함-> 한번에 모두 가능, 선택적으로도 가능
// toString의 법칙은 변하지 않음
// toString (원래 주소를 주는 아이) = 기본
// 우리가 만든 toString(바꾼 리턴값) = 튜닝값
// public String toString() {
// return getClass().getName() + "@" + Integer.toHexString(hashCode());
// }
10. 출력시에 id1 만 불러서 출력하는데 이때 toString이 생략되어있다고 생각하면 됨
import java.sql.SQLOutput;
public class Identification {
public String name;
public String country;
public String eyeColor;
public String hairColor;
public int height;
public int weight;
public Identification () { // 생성자 -> 메모리에 올라갔다?
}
// toString 은 추상클래스(?!!) or 인터페이스..?
public String toString() { // toString은 class Identification 이 있어야 작동이 됨 //
return "Identification{" +
"name='" + name + '\'' +
", country='" + country + '\'' +
", eyeColor='" + eyeColor + '\'' +
", hairColor='" + hairColor + '\'' +
", height=" + height +
", weight=" + weight +
'}';
}
}
public class Main {
public static void main(String[] args) {
Identification id1 = new Identification(); // 객체
id1.name = "JooHee Bae";
id1.country = "Korea";
id1.eyeColor = "Black";
id1.hairColor = "Black";
id1.height = 180;
id1.weight = 100;
// 오버라이딩 <--> 오버라이드 (오버로딩?)
// id1 == id1.toString() ==> 굳이 쓸 필요없음! 그래서 회색깔로 표시됨!
System.out.println("정보의 실제 값 : " + id1); // 기본적으로 여기서 'id' 라는 애는 출력할 때 무조건 .toString();을 이미 생략이 되어있는거
// System.out.println("정보의 실제 값 : " + id1.toString()); // -> 위에랑 같은 값 출력됨
// 해당 객체의 주소값을 정보값으로 보여주는 역할
System.out.println("객체 내의 모든 값 : " + id1);
}
}
'■ JAVA REVIEW & PRACTICE > INDIVISUAL' 카테고리의 다른 글
CLASS LECTURE WITH SK TUTOR (0) | 2024.08.25 |
---|---|
클래스와 관련된 용어들 이해하고 직접 코드 작성해보기 (0) | 2024.08.08 |
자바의 정의와 문법 테이블로 한눈에 보기 (0) | 2024.08.04 |