1. JAVA/6). 자바_질문

자바_질문_04

구이제이 2024. 1. 24. 18:03

ㅡㅡㅡ

20240119(금)



질문

 

1) 클래스안에서 메소드를 만드는 것과 Static의 차이가 무엇인가?

 

>>>

 

둘다, 데이터영역에 있다는 건데,

static은 가장먼저 올라가고 생성이고 뭐고, 메모리 영역에 처음으로 올라가 있다.

그러나 클래스안에서 메소드는 객체가 만들어져야 클래스안 있던 것이 메모리 영역에 올라가져 있다. static과는 다르다.




ㅡㅡㅡ 상속, 

20240124(수)



1. 질문  - 부모가 담기는지, 자식이 담기는지 것의 여부

Animals ani = new cat(); - 1)생성된다.

Cat cat = new Animals(); - 2)생성은 됩니까? >>> 생성안된다. 

 

Cat cat = Cat(ani) 강제형변환 설명 : 밑에서 ani라는 참조변수가 강제캐스팅,아래로내려가서 다운캐스팅이라 부른다. 

>>>

Animal ani = new Cat();

Cat cat = (Cat)ani; 이것은 가능하다.




자식이 부모가 되는것 업캐스팅

부모가 자식이 되는것 다운캐스팅

ex) double a = 3;

자동타입변환, 묵시적타입변환, 

자식은 부모로 형변환가면, 

작은 타입이 큰타입되니 업캐스팅

자식이 부모가 되니 업캐스팅

부모가 자식으로 가면 다운캐스팅




ex)int t = 3.5;(double)

>>>

ex)int t = (int)3.5 명시적형변환, 아래로내려가서 다운캐스팅




2)

자식이 부모되는것 업캐스팅

자식이 부모되고 자식이 되는것을 다운캐스팅 이라한다. 

혹은 부모가 자식이 되는것만 하는 것도 똑같은 건가요? >>> 맞다.



3)

온전히 부모가 자식으로 가는것은 안된다.?  

>>>

자식이 부모가 되고 다시 자기타입으로 돌아오는것은 된다.

그러나 처음부터 부모가 자식타입으로 들어간다라는 것은 안된다. 

이유는 아예 자식타입을 구현할 능력이 안된다. 자식에 대한 값들이, 부모에게 없기 떄문이다.



4)

자식이 부모타입에 대입대면, 부모영역만 구현하고 자식영역은 숨겨둔다.

다시 형변환되면, 숨겨진것이 펼쳐지기에, 자식이 부모의형변환되고 다시 자식의 형변환이 가능하다.





부모타입




객체지향의 꽃

-인터페이스

-다형성



*다형성(영향을 끼친다)

인터페이스

추상클래스



★질문

Animal ani = new Cat();

 

*상속 : Animal ani = new Cat();

Animal ani >>> 타입으로 쓰겟다.

new Cat() >>> Cat으로 만들겠다.

>>> 힙영역에 Animal꺼만 필요하다고하니깐, Cat으로 만들었지만, Cat은 숨긴다.

 

*상속 : Cat ani = new Animal();

Cat ani >>> Cat타입으로 쓰겟다.

new Animal() >>> Animal으로 만들겠다.

>>> 힙영역에 Cat꺼만 필요하다고하니깐, Animal으로 만들려하지만, Cat을  힙영역에 ,구현을 못하므로 아예 만들수가 없다.

 

*예외는

자식이 부모가 되고 다시 자식이 될수가 있다.




★질문

메소드sample(new Car()); >>> 생성된 객체를 넘기는것

메소드sample(car); >>> 생선된 객체가 담긴 참조변수를 넘기는것.

>메소드 실행에 있어서 똑같지만, 이후에 코드에서 재사용하기는 메소드sample(car);인 참조변수로 주는게 낫다.



*

자식이 부모타입으로 만들어지면, 자기것은 못쓴다. 부모꺼만 쓴다(단, 재정의 된것은 쓸수있다.)

 

★질문

최상위 조상 Object  넘기는것

장점이자 단점 : 1.모든 것의 조상이며, 받을수있다.(다받는다면, 혼란이다.)

그래서 제네릭을 사용한다. 생성과동시에 타입이 정해지기 때문이다.

2.넘겨줄지 모를때, Object를 사용한다.

(실무에서는 Object를 사용하지 않는다. 이미 설계하고 구조를 잡기 때문에, 부모와 자식이, 그리고 타입이 정해지기 때문이다.)


'1. JAVA > 6). 자바_질문' 카테고리의 다른 글

자바_질문_05  (0) 2024.01.25
자바_질문_03  (0) 2024.01.18
자바_질문_02  (0) 2024.01.11
자바_질문_01  (2) 2024.01.08