남궁성 자바의 정석 보는중인데
자손 타입의 참조변수로 부모의 객체를 참조할수없다 라고 했는데
이유가 자손타입의 멤버가 부모의 멤버보다 많기때문에 호출시 에러가 발생한다고했음(기능이 안쓰이는건 상관없는데 리모콘 버튼이 남으면 안된다는식으로)
근데 또 형변환은 부모자식간에 가능하다고 하거든
형변환이라는건 결국 자손타입의 참조변수가 부모의 객체를 참조하게된다는 소리아님?
실제로 실행시 오류가 발생했는데 ㅅㅂ 어케이해해야 맞는거임?
남궁성 자바의 정석 보는중인데
자손 타입의 참조변수로 부모의 객체를 참조할수없다 라고 했는데
이유가 자손타입의 멤버가 부모의 멤버보다 많기때문에 호출시 에러가 발생한다고했음(기능이 안쓰이는건 상관없는데 리모콘 버튼이 남으면 안된다는식으로)
근데 또 형변환은 부모자식간에 가능하다고 하거든
형변환이라는건 결국 자손타입의 참조변수가 부모의 객체를 참조하게된다는 소리아님?
실제로 실행시 오류가 발생했는데 ㅅㅂ 어케이해해야 맞는거임?
코드 내놔봐
내코드말고 ㅅㅂ 부모의 객체를 자식이 참조하게하면 안되는거아님? 왜 서로 형변환이 된다는거임?
실행 시 오류가 발생했다며. 오류 메시지 보면 이유를 알 수 있을거 아냐
오류가뜬이유는 부모객체의 변수를 자식의 타입으로 형변환했으니까;;
내가 궁금한건 부모의변수가 자식의 객체를 참조할수있는데 반대가 안된다고 하면서 왜 서로 형변환은 가능한지가 궁금한거임
부모타입 참조변수에 대입되었던 자긱객체 <- 여기 있는 참조변수는 다시 자식타입의 새로운 참조변수에 대입될 수 있음. 대신 본래 객체의 타입과 동일한 타입이어야함
class B extends A , A a = new B; , B b = a; 명시적 타입 변환은 이렇게 타입 조건이 동일해야만 가능한걸로 알고있음
괄호 생략 ㅈㅅ
위에서 아래는 된다는거 알겠는데 아래에 위는 안된다는거지?
아래가 위로 갔다가 다시 아래로 가는 경우만 << 위에서 아래로 가는 게 가능함
자식타입 변수가 부모타입의 변수를 참조하는건 가능한데 부모의 객체를 참조하는건 안된다고?
자식 타입 변수가 부모 타입 변수를 참조하는 데 조건이 있다는 거지 본래 자식 객체를 참조하는 부모 타입의 변수만이 다시 자신의 타입으로 돌아갈 수 있다고 보면 됨
니 코드대로하면 부모객체를 참조하는 변수는 없는상태니까 저 변수끼리만 형변환이 가능하단거?
class B extends A , A a = new B(); , B b = (B)a; 명시적 타입 변환
위에거 타입 명시 안해서 틀린 코드임 ㅈㅅ
ㅇㅅㅇ 니 코드에선 부모객체를 아무도 참조하지않자너 그런 변수끼리는 형변환 가능하다거?
맞음 내가 알기론 결국 부모 객체를 참조하고 있는 상태였다면 자식 타입으로 변환할 수 없음
ㅅㅂ 참조하는 객체가 먼지만 신경쓰면 되는거아님 그럼?
최초에 자동형변환으로 부모 타입의 참조변수에 어떤 자식 객체를 대입했냐가 중요하니깐 너 말이 맞지 그래서 instanceof 라는 비교문법?? 그런걸로 실제로 자식 객체를 품은게 맞는지 확인할 수 있음. 저 상태에서 syso(a instanceof B)(a가 B인스턴스냐) 를 실행하면 true가 나옴
a instance of b 는 a가 참조하고있는 객체를 b가 참조할수있는가를 따지는건가 그럼?
a instanceof B 라고 했으니 B는 subclass, a는 B 인스턴스(여기서 객체)를 참조하는 A(superclass)타입 변수야. 명시적 형변환에서 subclass로 되돌아오려면 저 조건문이 true여야 가능하다고 생각할 수 있겠지?
static B change(A a) { if ( a instanceof B ) return (B)a; return null; } 이런 메소드가 있다고 치고 생각해봐
ㅇㅇ 니가말한경우 형변환 가능한건 알겠는데 문법을 물어보는거야 x instanceof y로 생각하면 x가 참조하고있는객체를 y가 참조할수있는가를 따지는건지
내가 적은 경우만 생각하면 a 변수가 B 인스턴스냐 이걸 묻는 거 뿐일걸
instanceof메소드의 문법을 물어보는건디
a가 B인스턴스냐 그러니까 참조변수 a가 참조하는 게 B인스턴스맞냐 이걸 묻는건데 첨부터 계속 말해줬어..
그리구 instanceof는 메소드는 아니라 생각하고 굳이 따지면 연산자 쪽에 가까운 것 같고
아시발 잘못이해한거였네 니경우에만 맞는거같다
루비님이 용어지적 하셨는데 그건 나도 잘모르겠지만 자바 책만 세권 본 나로서는 너가 적어도 한국식 용어 구분은 잘했고 교재에도 대부분 비슷하게 되어있었으니 개의치말고
a가 B인스턴스냐는게 좀더 구체적으로 무슨말임?
자식이냐 라는 조건문느낌인가?
ㅋㅋ 그걸 설명하려면 또 말 길어지는데 너가 말한 객체가 인스턴스라고 생각하고, a instanceof B 라고 했잖아? B 클래스의 생성자를 통해 나타난 객체(인스턴스)가 맞냐 이거지. 맞는지 어떻게 비교하는가의 로직은 나도 몰라. 앞의 문장을 이해했으면 참조변수 a가 참조하는 주소가 있을 거 아니야 이건 물론 해시코드에의한 분류긴한데 a가 가르키는 주소에 있는 객체가 B 클래스를 따른 인스턴스가 맞냐는 건데 미안 이렇게해서 이해안되면 당장 클래스 객체 new JVM 메모리구조 등 공부할게 많은 것 같아
자식이냐 라고 보면 안되고 좌항(변수)이 우항(클래스)의 객체냐 그러니까 인스턴스냐 또는 어찌어찌해서 new 연산자를 통해 나타난 우항 인스턴스가 맞냐
ㄴㄴ instanceof에서 연산자의 위치를 잘 모르겠는거지 개념은 알겠음
그냥 변수를 왼쪽에 클래스명을 오른쪽에
ㅇㅅㅇ 그럼 오른쪽이 왼쪽을 참조할수있냐 물어보는거네
씨발련아 오른쪽은 클래스 이름이고 왼쪽은 참조변순데 좆같은 소리하면 궁성이형 책으로 머갈통터뜨린다
머가 오른쪽 클래스로 생성한 객체의 변수가 참조가능한지 체크하는거잔아
니 코드에서도 a가 B클래스의 객체를 참조하고있으니깐 true자너
https://gall.dcinside.com/board/view/?id=programming&no=2129309&s_type=search_subject_memo&s_keyword=%ED%98%88%EB%B3%80%ED%99%98&page=1
이 코드는 자식타입변수가 부모의객체를 참조하게되지않음?
해당 댓글은 삭제되었습니다.
영어 ㄲㅈ
해당 댓글은 삭제되었습니다.
아뉘...부모타입의 변수가 자식의 객체를 참조할수있는건 알겠엉...근데 반대는 안되잖아 근데 왜 서로 형변환이 가능하냐구..
해당 댓글은 삭제되었습니다.
자식타입변수가 아니지아늠?
자식타입의 참조변수라는건 있을텐데
class b가 class a를 상속받게되면 classb를 참조하는 변수는 자식타입의 참조변수아님?
윗댓에서 좀 이해되게 설명들었는데 인스턴스 변수가 부모객체를 참조하고있다면 자식객체를 참조하는 변수로 형변환할수없단거?
자바의정석 강의동영상에 정확히 자손타입의 참조변수로 조상 타입의 객체를 참조할수 없다고 되있음
super는 자식클래스 내부에서 호출아님?
틀딱련아 용어에 의미를왤케둬
남궁성한테가서 강의왜 이따구로찍고 책 왜 그따구로썻냐고 따져라
오른쪽 클래스로 생성한 객체의 변수가 참조가능한지 << 이 말은 모호하다거나 틀렸다 너가 읽고 다시 말해보셈 그냥 instanceof 는 변수가 참조하는 게 클래스 소속 인스턴스이냐 이것뿐이다
변수가 그 클래스가 포함하는 범위안에 있냐고?
참조변수가 가르키는 주소로 가봤는데 해당 클래스 생성자를 통해 나타난 인스턴스가 맞냐고 씨발련아
지금은 니가 원하는 그 정확한 개념에까지는 도달못하겠따 true false중 어떤값이 반환될지는 확실히 알겠는데..
진짜 죽여버리고싶다
오 그말 정확한거같은데 자식은 부모의생성자가 존재해야하니까
미안하다 시발; 다형성 접하는게 첨이라 니대가리 터트려버렸노
new 연산자와 생성자를 통해 나타난 인스턴스가 가진 주소를 참조 변수에 할당했다. 이 참조 변수를 가져와서 참조 변수가 가르키는 주소를 가진 객체가 과연 내가 생각하는 클래스의 생성자를 통해 나타난 인스턴스가 맞는지 확인하는 거라고 씨발아
구니간 시발....말을 그렇게 하면 정확한 개념이네 내가 너무 쉽게 이해하려고했따 미안하다
다형성은 타입이 부모 클래스인 매개 변수를 받는데 자식 클래스의 인스턴스를 대입해도 성립이 될 때 다형성이라 하고 니가 말하는 건 말그대로 형변환이다 자동 형변환 타입변환 명시적 형변환.
만약 니 코드에서 a가 A의 객체를 참조한다면 a는 B의생성자를 통해 나온새끼가 아니니까 ㅇㅈㅇㅈㅇㅈㅇㅈㅇㅈㅇㅈ고맙다리
이직좋은데가라 섹스;
앞에 나왔던 개념들 절대 소홀히하면 안돼 특히 메모리 영역과 관련된 부분은 확실히 짚고 나중에 고생함
근데 아직 그짓거리가 좋은지 모르겠다 멤버의숫자를 유동적으로 바꾸는게 무슨이득을 가져올수있는지
메모리영역이 어느파트를얘기하노?
멤버의 숫자를 유동적으로 바꾼다? 그건 어디 나온 부분임 잘 이해 안됨. 메모리 영역은 Stack Heap Mehod 영역에 대한 이야기
아 그 참조하는 멤버의 숫자를 말하는거임 부모보다 자식의 멤버가 더 많으니까
한달됫는데 그정도 이론이 정립됫노 시발 국비에이스임?
스택 힙 메소드가 쓰이는일이있고만 시발 한번더봐야지 ㄳㄳ
참조하는 멤버의 숫자는 또 뭐임? 난 모르는 개념임 부모보다 자식의 멤버가 많다는 것도 모르겠음 너가 말하는 멤버는 어떤 걸 이야기하는 거임? 클래스 내의 멤버?
ㅇㅇ 객체멤버
남궁성은 자식이 부모에서 기능을 추가하고나오니까 자식의 멤버가 더 많다고 얘기하던디
너도 지금처럼 깊게 이해하고 넘어가는 습관 들이면 남들보단 나을 거임 나는 이미 에이스를 넘어섬
ㅇㅅㅇ 한달차에 그정도면 솔찌 졸업한애들보다 난거같음
내가 자바의 정석을 안봐서 모르겠는데 지금 너가 말한 걸로만 얘기하자면 클래스내에 존재하는 멤버 말하는 것 같음 어찌됐든 상속은 나쁜 말로 코드를 재활용하는 거고 부모의 코드를 모두 물려받으니까 적어도 "이상" 이겠지. 상속을 왜하는지에 대한 불만이라면 코드몽키수준으로는 코드 재활용을 위해서라 생각하고 좀더 나아가면 일련의 공통점을 가진 클래스들에게 동일한 규악을 건다 이렇게도 생각할 수 있음 기능의 추가에대한건 이후의 일이고
근데 비전공이 한달 대가리박고 그정도 정립을 어떻게 할수있는거지 존나신기하네
클래스 내의 멤버는 단순히 필드 생성자 메소드고 (얘네를 통칭 멤버라 불렀음 나는) 더 추가하면 중첩인터페이스, 중첩클래스, 앞의 것들을 다 분류하면 인스턴스 필드 인스턴스 메소드 정적 필드 정적 메소드 네스티드 클래스 네스티드 인터페이스 이너 클래스 등등 종류는 많음 자식이 멤버가 많겠지 부모클래스는 결국 자식클래스들의 일반화형태라고도 말할 수 있으니 구체화됐다 생각해도 합리적이지 이 개념은 추상클래스와 더 어울리지만
자바 몇번 반복하고 DB로 넘어가면댐?
프론트쪽은 얼마나 맛봐야댐?
내 대가리가 그래도 컴퓨터화 되고있다고 생각했는데 한참멀었네 시벌 더 찌들어야되나보다
그건 난 몰라 뒷부분가면 jsp같은 걸로 html코드를 다룬다고하니 강사님이 알려준 부분이라도 이해하고 다시봤을때 알아볼 수준이면 될 것 같음 나도 막상 코드짜면 다 틀리고 똑같을거임 너랑
짜는건 뭐 하면서 늘려야되니깐 어쩔수있나 ㅋ 개념정립이라도 확실하게되면 면접때 절지는 않을텐데 그정도는 되고싶다
텍스트 그대로 받아들이지말고 참조 변수 객체 인스턴스 클래스 이런 모든 사소한 용어들에대한 개념 확실히 잡으면서 읽어야 이해됨 API 부분은 이해하고 다시보면 됨 근데 그 이외의 용어들은 정확히 해석하고 읽으면서 그려져야함
너도고생해서 좋은곳 가랑 고맙다 기모띠하게 잘수있겠다 이런거 한번 걸리면 잠못자는데 ㄳ
굿 글삭좀부탁 나 국비에 들킬까바 무서움
ㅅㅂ 자동설정된 비번이 뭔지모르겠노
아이시발 끝까지 맘에안드는새기네
직접댓삭하실?