안녕하세요, 업캐스팅 메서드 호출에 관해서는 잘 이해하고 있다고 생각하는데 변수 호출에 관해서 질문이 있어서 질문 드립니다. public class Main { public static void main(String[] args) { Parent p = new Child(); System.out.print(p.x + " "); p.print(); } } class Parent { int x = 10; void print() { System.out.print("Parent "); } } class Child extends Parent { int x = 20; void print() { System.out.print("Child "); } } 이런식으로 함수가 작성되면 메인함수의 system.out.print(p.x+" ") 실행될 때 p.x 변수 호출에 관한 질문입니다. child 클래스의 변수 x 값인 20이 호출되지 않고 parent 클래스의 변수 x 값인 10이 호출된다고 하는데 이건 왜 그런가요? 그냥 외워야 하는 java 언어의 기본값인가요?
단순한 java 질문인데 만약 부모, 자식 class가 있고, 자식이 부모를 상속받고 생성할때 오직 업캐스팅 형태에서만 자식 생성자를 생성할 때 부모 생성자를 만들고 생성하는 건가요? 아니면 업캐스팅이 아닌 일반적으로 자식 생성자를 생성할때도 부모 생성자를 불러서 생성해야 하나요?
코드 파트는 잘 이해하고 공부 진행 했는데 이론파트 첫 강의부터 영상이 아닌 페이지라서 어떻게 공부를 해야될지 길을 잃은 느낌입니다. 이론 섹션에 들어갈때 첫 영상으로 어떻게 공부해야되는지 설명이라도 해주셨으면 좋았을 거 같습니다.. PDF랑 페이지랑 안에 내용은 또 다른 내용이라 더 혼란스럽습니다. 페이지를 가볍게 이해하고 PDF 파일을 외우라는 의도인지 아니면 둘 다 외우라는 의도인지 궁금합니다. 첫 페이지를 들어가보면 "요구사항 분석 챕터에서 중요한 부분 정리" 라고 적혀있으나 받아들이는 입장에서 중요한 부분인데 왜 PDF에는 이거에 관한 내용이 없는거지? 이 두개의 차이점은 뭐지? 라는 생각이 듭니다.
안녕하세요 union 관련하여 질문드립니다. 예제 1에서 num.floating = 3.14 재사용하면서 덮어쓰기처럼 되었기에 그 밑의 num.integer가 쓰레기값이 되었다고 설명주셔서 이해하였습니다. 그런데 예제 2에서 data.integer를 통해 재사용하였는데 그 밑의 sizeof(data.character)값이 1 bytes로 출력될 수 있는지 궁금합니다. 저는 data.integer이 값을 할당한 직후기 때문에 sizeof(data.character)도 4 bytes로 출력될 것으로 예상했습니다. 감사합니다.
선생님 최근까지 시험 계속 본 사람인데요ㅜ 요즘 문제가 예를 들어서, 문제 : 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법 설명 보기 : ㄱ. Equivalence Partitioning, ㄴ. Boundary Value Analysis 답 : ㄱ 이렇게 보기가 영어로 나올때가 있는데 블랙박스테스트는 영어로 단어가 설명 안되어있어요ㅠ 근데 지피티한테 물어봐도 영어를 모르겠어서여ㅜㅜ 제가 책은 없고 선생님 자료로 수강중이라 이론 자료에 영어 단어도 부탁드립니다ㅜㅜ
안녕하세요 선생님, 강의 감사히 잘 듣고 있습니다. 아래 코드에 대해 거의 동일한 내용의 다른 질문에 남겨주신 답변을 봤는데요 (컴파일러마다 값이 다를 수 있고, null 문자를 만날 때까지 계속 찾는다.) 강의에서는 " strlen()은 길이가 같으나 , sizeof()하면 크기가 달라짐" (sizeof()는 null문자가 있고, 없고 차이로 이해함) 질문) 그런데 strlen()은 길이가 같을 것으로 기대를 했는데 11과 5으로 차이가 좀 나더라구요... 이런 경우는 strlen()이 컴파일러에 의해 다른 값이 나오는 건지, null문자를 한참 못찾아서 11까지 간걸까요? 강의에서는 strlen()이 길이가 같다고 얘기해서 좀 혼란?스러운 것 같습니다. #include <stdio.h> #include <string.h> int main(int argc, char const *argv[]) { char str1[5] = {'H', 'e', 'l', 'l', 'o'}; char str2[] = "Hello"; printf("문자 배열의 sizeof() : %d\n", sizeof(str1)); // 5 printf("문자 배열의 strlen() : %d\n", strlen(str1)); // 11 printf("문자열의 sizeof() : %d\n", sizeof(str2)); // 6 printf("문자열의 strlen() : %d\n", strlen(str2)); // 5 return 0; } 1주일 남은 시점이라 고생 엄청 많으실 것 같습니다. 화이팅!
안녕하세요. 문의 드릴 게 있습니다. 14:02 에서, 궁금한 게 있는데요. 저번 수업에서 업캐스팅일 때, 오버라이딩 함수가 아닌데, 자식 매서드를 호출하면 에러가 발생한다고 하셨었는데요, 지금처럼 show(int x)매서드는 오버라이딩이 아니지 않나요?? 그럼 궁금한 부부분이 단순 선언은 괜찮은건가요? 호출 시에만 문제가 되는건지 궁금합니다. 지금 14:02 에서 보여지고 있는 코드가 오류가 없는 코드인지 궁금합니다.
지금 class Parent { public String name = "Parent" ; } class Child extends Parent { public String name = "Child" ; // Parent의 name 변수를 hiding함 } 두 변수 모두 정적 변수가 아니라 인스턴스 변수? 인데 그럼에도 업캐스팅 한 객체에서 변수를 불러올때는 선언한 타입 클래스에 있는 변수를 불러온다는 것이겠죠? 재선언한 자식것을 가져오는것은 동일 형태의 매서드만 가져오는것이구요?