시험 20일전에 수강신청해서 10일만에 이론강의 다듣고 기출문제 풀이 보다가 정말 풀수 있는 문제가 하나도 없어서 다시 이론쪽 보고있습니다.. 이론강의 볼땐 1배속으로 모르는부분은 다시 보면서 이해는 다 됐다고 생각했는데 기출에 응용을 아예 못하고 있습니다.. 2일정도는 pdf암기한다고 가정하면 코드 공부기간은 일주일 남은 시점인데 다시 이론부분을 봐야할꺼요? 이해가 안가도 기출을 봐야할까요?
class Car { String model; int year; Car() { System.out.println("Car constructor"); } void start() { System.out.println(model + " start"); } void stop() { System.out.println(model + " stop"); } } class ElectricCar extends Car { ElectricCar() { System.out.println("ElectricCar constructor"); } void stop() { System.out.println(model + " stop and power down"); } void checkBattery() { System.out.println(model + " check battery"); } } public class Main { public static void main(String[] args) { ElectricCar eCar = new ElectricCar(); eCar.model = "Tesla Model 3"; eCar.year = 2021; eCar.start(); eCar.stop(); eCar.checkBattery(); } } 위 예제는 다른 예제인데요. checkBattery() { System.out.println(model + " check battery"); } } 이 부분은 부모 클래스에 함께 가지고 있지 않은데 이건 다른건가요? 제가 의심하는걸로는 업캐스팅 문제 예시 8번에 나와있는건 public void고, 저 문제에서는 그냥 void인데 pubilc 유무와 관련이 있을까요?
안녕하세요. Child()에 명시적으로 부모 생성자를 호출하는 문구가 있어서 [Parent: 5 [Parent default 가 호출되는 것 이해했습니다. 그럼 Child(){ 안에 super()가 없고, this.display()부터 시작하는 상태라도 출력값은 동일한가요? 자식 생성자 생성 전에 부모 생성자 먼저 생성돼야 하고, 부모 클래스에 기본 생성자가 정의되어 있으니까요. 감사합니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int userInputBase = 0; int userInputExp = 0; int value = 0; char continueLoop = 'y'; while (continueLoop == 'y') { printf("가수부를 입력하세요: "); scanf("%d", &userInputBase); printf("지수부를 입력하세요: "); scanf("%d", &userInputExp); value = 1; for (int i = 0; i <userInputExp; ++i) { value *= userInputBase; } printf("%d의 %d 제곱은 %d입니다\n", userInputBase, userInputExp, value); printf("다른 값을 계산하시겠습니까? (y/n) : "); scanf("%c", &continueLoop); printf("입력한 값은 %c 입니다.\n", continueLoop); } printf("종료 되었습니다. Good bye"); } 이렇게 작성했습니다. scanf("%c", &continueLoop); 부분에서 n을 입력하면 while문을 빠져 나오게 의도 했는데, debuger를 살펴보니 continueLoop 변수에 10 '\n' 이 저장이 된 채 해당 라인을 그냥 건너뛰더라고요. 그러고 나서 프로그램이 마지막 printf() 라인을 출력하고 종료 되었습니다. 마지막 scanf()를 건너뛰는 이유와 알 수 없는 값이 continueLoop 변수에 들어가 있는 이유가 궁금합니다.
안녕하세요. 직전 강의에서 객체 생성 시 가장 먼저 생성자를 실행해야 한다고 설명해 주셨습니다. 그런데 본 강의 예제에서는 생성자 메서드를 실행하지 않네요. 업캐스팅인 경우에는 생성자를 실행하지 않는건가요? 감사합니다. 수정: 다른 질문을 보니 생성자를 실행하는 것 같네요. 4:00 예제의 경우 Car 생성자: Tesla Model 3 2021 ElectricCar 생성자: 75 kWh (이하생략) 부모, 자식 생성자가 각각 이렇게 출력된다고 답변해 주셨는데, 이건 둘다 기본 생성자가 없어서 그런거 맞나요? 만약 Car 클래스에 파라미터 없는 기본 생성자가 있었으면 부모 클래스에는 기본 생성자 실행, 자식 클래스에는 파라미터 있는 생성자 실행이 되는게 맞나요?
자식 생성자 생성되고 child() 왔다가 부모 올라가서 parent() 먼저 출력후 자식내려와서 super() 이니까 또 parent() 출력하고 다시 내려와서 child constructor 해야하지 않나요? parent constructor parent constructor child constructor 라고 생각했는데 아닌 이유가 뭘까요..
안녕하세요. 수업을 듣다가 이전에 트리플 변수 초기화와 관련해서 궁금증이 생겨 질문드립니다. 영상 말미에 x != y == z; (x != y) == z; 처럼 같은 우선순위는 왼쪽에서 오른쪽으로 수행된다고 말씀해주셨는데요. 5.3강 더하기, 빼기, 부호 연산자들 강의에서 int income, salaray, bonus; income = salaray = bonus = 100; 위와 같은 코드가 있었습니다. = (대입 연산자)의 우선순위가 서로 동일하니 (((income = salaray) = bonus) = 100) 이렇게 되는건가요? 변수의 경우는 저 방식이 아닌 5.3강 수업 때처럼 오른쪽부터 대입하게 되는 건가요? 머리 속으로는 후자인거 같은데 연산자별로 연산되는 순서 방향이 다른건지 명확하게 알고 싶어서 질문 드립니다 🙏
문자열이 비어있는지 판단하는것이 string str = "Hello"; 가 있냐 없냐로 판단하는 것인가요??? 설명란에 Hello라는 문자열이 변수에 들어가 있고 그것이 비었는 지를 물어보는 기능이 참값이 나온다는데 비어있으면 참값이고 그렇지 않으면 거짓값인데 답이 거짓값이 나와서 이해가 조금 부족합니다..ㅠㅠ
이전까지 업캐스팅에서 부모의 기본생성자를 먼저 출력하고 다음에 자식의 생성자를 실행한다고 배웠는데 여기선 빼고 바로 B의 생성자로 가는 이유가 무엇인가요 앞 문제와 파라미터가 들어간 메인함수는 똑같은데 오버로딩과 무슨 관련이 있나요 B의 기본생성자에서 명시적으로 파라미터가 들어간 부모 생성자를 호출하기에 부모 기본생성자를 생략해도 되는건가요
29:27 삼항 연산자 한 줄로 되어있는 부분 해석해주실 때, if level % 2 != 0: 위 부분이 이해가 안됩니다. if node else 0 이 부분은 "if 부분이 참이면 return을 하고"라고 해석을 해주셨는데요 왜 if level % 2 != 0: 이 부분 해석해주실 때에는 != 같지 않다라고 해석을 해주시는지 궁금합니다.
arr+1의 값이 22가 나오는 이유가 arr의 배열은 4번까지 진행됐을때 {21, 31, 40, 50, 60}이고, 1번, 3번, 4번까지는 ptr의 포인터 변수의 값을 물어보는 의미이기 때문에 5번의 *arr+1은 arr배열의 초기값인 21에서 1을 더한것을 출력하기 때문에 22가 맞는건가요?
반복문과 range 강의 챕터 4:51 for i in range(3): j=0 while j<3: print("*", end=" ") j+=1 print() 위 구문에 대해서 range 의미를 잘 모르겠습니다. range(3)이니까 0~2까지 해서 3개가 된다는 것은 이해가 됐고, 개행이 2번 되어 행이 3개가 된다는 것은 이해가 됐습니다. 하지만 왜 각 행마다 개수가 range의 어떤 역할 때문에 *이 3개씩 있는지 이해가 되지 않습니다.