언어(24)
-
다운케스팅, 다형성
// Call By reference // 부모 클래스 하나로 다 받는다. 매개변수에다가 다형성을 적용// 오버라이드도 아니고, 매개변수가 다르다. 매개변수가 다른 매서드를 여러개 만들면 안된다. public static void moveAnimal(_05_Animal animal) { //System.out.println(animal); animal.move(); if(animal instanceof _05_Human) { // 다운케스팅 _05_Human test = (_05_Human)animal; test.readBook(); } else if(animal instanceof _05_Tiger) { _05_Tiger test = (_05_Tiger)animal; test.hurting(); } e..
2025.06.02 -
overide vs overoad vs 상속
오버로드 : 같은 메서드명에 ()안에 서로 다른 타입이거나 개수가 다른게 여러개....오버라이드 : @Overload라는 어노테이션을 선언하기 컴파일러가 검증? 하여 이 메서드는 어버라이드 했구나 판단, 부모의 메서드를 사용하지 않고 오버라이드 된 자식의 메서드를 사용함 -> 오버라이드는 부모의 것을 버리고, 자식의 것이 출력된다.super는 부모의 참조변수이다.this는 자식의 참조변수이다. 부모 상속을 받았다. ( 자식 것 출력 )// 재정의 public String printInfo() { return "이름 : " + name + "\n" + "스피드 : " + speed + "\n" + "가격 : " + price + "\n" + "설명 : " + descirption; }@Override..
2025.05.30 -
static - 핵심
- static은 new보다 먼저 생성된다.- 아직 생성하지도 않았는데, static 메서드에 맴버변수를 선언하면, 순서때문에 에러가 발생한다.- static 변수도 일반 메서드에 생성할 수 없다. public static void main(String[] args) { _08_Person p1 = new _08_Person(); p1 = new _08_Person("운동"); //p1.setKind("운동"); personMove(p1); p1 = new _08_Person("독서"); //p1.setKind("독서"); personMove(p1); p1 = new _08_Person("잠"); //p1.setKind("잠"); personMove(p1); } // Call by Refere..
2025.05.29 -
Call by Value vs Call by Reference
주소값 : 배열, 클래스 객체, new 클래스-> 주소값을 호출 한다.값 : 기본형(변수)-> 값으로 호출 한다.
2025.05.29 -
참조변수
참조변수 : new 클래스명();- 주소값의 맴벼변수에 들어간다.- new 클래스명() // _09_Notebook notebook = new _09_Notebook("맥북 32GB M3", 4500000);
2025.05.28 -
객체의 이해...
클래스 : 객체 대한 설계도, 디자인 클래스의 구성 속성(맴버 변수) + 메서드(기능 + 동작) 객체는 클래스(구조)를 바탕으로 만들어져 힙 메모리에 담긴다. [이해한 부분] 객체는 인스턴스화, 즉 실체화 되는 과정 추상화는 공통된 성질을 모아둔 것, 즉 User라른 단어를 보면, 모오하고 추상적이다. User는 객체이다. 여러 유저 골드 유저, 실버 유저, 일반 유저등이 존재할 것이다. 그런 공통된 속성들을 모아둔 것.. 즉, User에게 필요한 이름, 나이, 등급 등... 공통으로 골드 유저, 실버 유저, 일반 유저에서 사용되는 것들을 모아둔 것이 클래스이다. 그래서 특정 시점이나, 고객에 웹사이트에 들어와서 회원가입시 수시로 객체를 생성 즉, 인스턴스를 한다. // 맴버변수 int studen..
2025.05.26