44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결김영한의 실전 자바 - 기본편
인터페이스-다중 구현 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인터페이스-다중구현 강의 자료 마지막 부분에b.methodCommon() 호출하면 먼저 x001 Child 인스턴스를 찾는다. 라는 부분이 있습니다. x001이 아니라 혹시 x002가 아닌지요? 위에 있는 그림하고 맞지 않는 것 같아서요.
- 미해결김영한의 실전 자바 - 기본편
메서드 위치 관련 질문
안녕하세요.메서드는 공통된 기능이기 때문에 인스턴스 변수처럼 내부에 가지고 있지는 않고 메서드 영역에 있는 걸 필요할 때(호출할 때) 가져와서 쓴다라고 하셨는데, 그럼 호출이 될 때 해당 메서드가 그대로 객체 내부로 복사가 되는건가요 ? 작성한 코드들을 보면 메서드 내부에서 해당 객체의 인스턴스 변수들을 활용하는 경우가 대부분일텐데 이럴 떄 메서드가 메서드 영역의 클래스 영역에만 위치한다면 메서드 내부의 코드에서 작성된 인스턴스 변수들은 어떻게 알지 ? 라는 의문이 들어서요.답변 부탁드립니다.
- 미해결김영한의 실전 자바 - 기본편
상속과 접근 제어
강의 내용과 똑같은 패키지로 Child와 Parent 클래스를 만들고나서각각의 패키지에 main메서드가 있는 클래스를 만들고 Child와 Parent 객체를 생성해 접근이 어디까지 되는지를 확인해보고아예 다른 패키지에 main메서드가 있는 클래스를 만들어서 Child와 Parent 객체를 생성해서 확인해보았는데 protected와 package-private 접근제어자 부분이 접근이 가능할줄 알았지만 안되는 경우가 나와서 제 예상과 너무 달라 많이 헷갈립니다.그래서 궁금한건 실무에서 protected와 package-private를 사용 하나요?
- 미해결김영한의 실전 자바 - 기본편
자식 클래스와 protected 메서드
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. package parent; public class Parent { protected static void staticTest(){ System.out.println("정적 메서드"); } protected void notStaticTest(){ System.out.println("인스턴스 메서드"); } } package child; import parent.Parent; public class Child extends Parent { public static void main(String[] args) { / Paretn.staticTest(); //정적 메서드는 정적 메서드 호출가능 Parent parent = new Parent(); parent.notStaticTest(); // 호출불가 컴파일 오류 Child child = new Child(); child.notStaticTest(); // 호출가능 Child 클래스가 Parent 클래스를 상속 받았고notStaticTest 메서드의 접근제어자가protected 인데Parent parent = new Parent();parent.notStaticTest();// 호출불가 컴파일 오류Child child = new Child();child.notStaticTest();// 호출가능 둘의 차이가 무엇이어서호출의 가능여부가 다른지 궁금합니다.
- 미해결김영한의 실전 자바 - 기본편
자바 메모리 구조 6분
스택 영역은 각 쓰레드별로 하나의 실행 스택이 생성된다고 하셨는데그렇다면 멀티 쓰레드일 경우메서드 영역과 힙 영역은 각 하나씩만 생성되고스택 영역은 쓰레드의 개수만큼 생성되는건가요?
- 미해결김영한의 실전 자바 - 기본편
instanceof 연산자 실제 구현
instanceof 연산자를 어떤식으로 사용이 되는지는 감이 오는데 실제로 이것이 어떤식으로 구현되어 있는지가 갑자기 궁금해져서 구글링을 해보니 아래와 같은 글이 나오긴 하는데요, java - How is 'instanceof' implemented in the JVM? - Stack Overflow 글만 봐서는 살짝 느낌이 안오는데 조금 더 쉽게 설명된 글이 있을까요?
- 미해결김영한의 실전 자바 - 기본편
노션 링크로도 공유가능한가요?
강의자료의 pdf내용을 제 옵시디언에 옮기고 있는데 복붙으로는 좀 번거로운 요소가 발생해서마크다운으로 된 걸 복사하면 좋을 것 같아서요
- 미해결김영한의 실전 자바 - 기본편
인텔리제이 String 오류?
가끔 String 쓰면 실행은 되는데 이렇게 오류나거나, 실행도 안 되고 오류가 뜰 때가 있는데 왜 그런건 가요? 같은 프로젝트 파일에서도 될 때가 있고 갑자기 안 될 때가 있습니다
- 미해결김영한의 실전 자바 - 기본편
super2 예제 자바 메모리 구조 질문
해당 예제에서 자바 메모리 구조가 잘안그려집니다. 스택영역에 main() 프레임이 생성ClassC classC = new ClassC(); 를 통해힙영역에ClassC 인스턴스 생성super를 통해 ClassB 인스턴스 생성super를 통해 ClassA 인스턴스 생성 C->B->A 순서로 힙영역에 인스턴스가 생기는건가요??new 키워드가 실행되는 순간 힙영역에 인스턴스가 생성된다면 C->B->A가 맞는거 같지만생성자 코드가 전부 다 실행되어야 힙영역에 인스턴스가 생성이되는 거라면 A->B->C 순서로 생성되어야 맞는거 같은데 정확히 어떤 순서로 메모리 구조가 구성되는지 그림이 안그려집니다.그리고 결국 메인 메서드가 종료가 되면 스택영역에서 main() 프레임이 제거되어 힙영역에 가비지 컬렉션이 동작될텐데 ClassC가 카비지 컬렉션에 의해 제거가 된다면 ClassB와 ClassA도 연쇄작용으로 제거가 되는게 맞을까요?
- 미해결김영한의 실전 자바 - 기본편
객체지향 프로그래밍 - 코드 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.다음 코드에서 멤버 변수 amount 의 선언이 메서드의 매개변수 자리에서 이뤄져도 충분한 건가요? 왜 그런지 이유를 알고 싶습니다!
- 미해결김영한의 실전 자바 - 기본편
NullMain4 메서드
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]NullMain4 메서드에서 참조값은 있지만 그 값을 정하지 않은 멤버변수 (count나 value) 들은 0으로 출력되는 것이 기본인가요?? 저는 값을 정하지 않았으니 쓰레기값이 나올 것으로 예상했었는데 0이 출력해서 궁금해서 질문드립니다!
- 미해결김영한의 실전 자바 - 기본편
자바 메모리 구조와 static 질문있습니다.
첫번째 코드(접근 제어자 문제2번)는 배열을 선언안하고 세번째 코드(자바 메모리 구조와 static 문제1번)는 배열을 선언했는데요. 관리하기 쉬울려고 배열 선언하는건가요? ex:static Item[] tota_llist=new Item[3]; 두번째 문제 질문있습니다.혹시 static변수안에서는 static int total=0; 이런식으로 static 매개변수 사용 못하나요? average()함수에서 사용할 목적입니다. 생성자로 static int total;이 방법 밖에 없나요?package ex4; public class MathArrayUtils { private int[] values; private MathArrayUtils(int[] value) { this.values = value; } public static int sum(int[] values) { static int total=0; for (int ii : values) { total+=ii; } return total; } public static int average(int[] values) { } public static String min(int[] values) { } public static String max(int[] values) { } }
- 미해결김영한의 실전 자바 - 기본편
접근 제어자-문제풀이1번 질문있습니다.
package ex3; public class MaxCounter { static int count; private int maxcount; public MaxCounter(int x) { this.maxcount=x; } public void increment(){ if (count<maxcount){ count++; } else{ System.out.println("최대값을 초과할 수 없습니다."); } } public int getCount(){ return count; } }위에처럼 풀어도 되나요? 작동되긴 합니다.
- 미해결김영한의 실전 자바 - 기본편
힙영역과 스택영역 질문입니다
객체를 생성을 했을때 멤버변수(value)는 힙영역이 되는 거고 클래스 내부에 있는 메서드(getValue())는 스택영역이 되는 것일까요? 계속 헷갈려서 질문 합니다 ㅜㅜ
- 미해결김영한의 실전 자바 - 기본편
제가 짠 코딩이 문제가 뭔지 궁금합니다.(뭐가 문제인지는 알겠는데 이해가 안 가서 질문을 드립니다.)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 이렇게 해야 제대로 돌아간다고 배웠는데 제가 짠 코딩은 productOrders[0] = new ProductOrder(); 을 빠트렸어요. ProductOrder[] productOrders = new ProductOrder[3]; 으로 공간을 할당하고 바로 productOrders[0].productName = "두부"; 로 초기화했는데 이러면 문제가 되는지 시스템이 실시가 안되더라구요.실시가 안되는 이유가 뭘까요? 저는 ProductOrder[] productOrders = new ProductOrder[3]; 이것이 null로 초기화하고 바로 productOrders[0].productName = "두부"; 로 다시 초기화를 했다고 생각하는데왜 문제되는지 이해가 되지 않습니다. package class1.Ex; public class ProductOrderMain { public static void main(String[] args) { ProductOrder[] productOrders = new ProductOrder[3]; productOrders[0] = new ProductOrder(); productOrders[0].productName = "두부"; productOrders[0].price = 2000; productOrders[0].quantity = 2; productOrders[1] = new ProductOrder(); productOrders[1].productName = "김치"; productOrders[1].price = 5000; productOrders[1].quantity = 1; productOrders[2] = new ProductOrder(); productOrders[2].productName = "콜라"; productOrders[2].price = 1500; productOrders[2].quantity = 2; int total = 0; for (int i = 0; i < 3; i++){ System.out.println("상품명: "+productOrders[i].productName + ", 가격: "+productOrders[i].price + ", 수량"+productOrders[i].quantity); total += productOrders[i].price; } System.out.println("총 결제 금액: " + total); } }
- 미해결김영한의 실전 자바 - 기본편
캐스팅 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Parent poly = new Child();Child child = (Child) poly; poly의 타입이 Child로 변하는 것은 아니다. 해당 참조값을 꺼내고 꺼낸 참조값이 Child타입이 되는것이다. 라고 되있는데이부분이 잘 이해가 가질 않습니다. poly는 결국 변수명일 뿐이고 핵심은 참조값인데 poly라는 객체의 참조값의 타입이 변경 된다는게 결국 poly의 타입이 변경된다는거랑 같은 말 아닌가요?결과적으로 그냥 이 부분이 그래서 무엇을 뜻하는건지 모르겠습니다.그냥 poly의 타입이 Child로 바꿔서 쓴다고 이해해도 상관없지 않나요?
- 미해결김영한의 실전 자바 - 기본편
displayInfo 메소드에 배열 인스턴스 문의
Book 클래스 displayInfo 메소드에 book1 ~ book3 까지 각각 인스턴스를 넣어 정상적으로 출력이 되었습니다 void displayInfo(){ System.out.println("제목:" + title + ", 저자:" +author+ ", 페이지:" + page); } --- Main 메소드 --- book1.displayInfo(); book2.displayInfo(); book3.displayInfo(); 만약 displayInfo 메소드에 Books 인스턴스 배열을 매개 변수로 넣고 for문으로 처리하고 싶으면 어떻게 코드 수정을 해야 할까요? 뾰족한 수가 생각이 안나 스스로 해보는 중인데 ㅠㅠ 되지 않네요 혹시 가능할까요..? Book 클래스 displayInfo 메소드에 아무 매개변수를 배열 인자를 받아야 뭐 해결이 될거 같은데..ㅠ < 시도중인 코드> === Book 클래스 displayInfo 메소드=== void displayInfo(Book[] books){ for(int i=0; i <= books.length;i++){ System.out.println("제목:" + books[i].title + ", 저자:" +ooks[i]. author+", 페이지:" + ooks[i]. page); } } === 메인 메소드 === Book book1 = new Book(); Book book2 = new Book("Hello Java", "Seo"); Book book3 = new Book("JPA 프로그래밍","Kim", 700); Book[] books = {book1, book2, book3}; books.displayInfo();
- 미해결김영한의 실전 자바 - 기본편
제어자2번 문제 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에서 item.getName()은 클래스 Item의 메서드인데 클래스 ShoppingCart에서는 따로 인스턴스를 만들지 않았고 배열인 Item[] items = new Item[10]; 만 만든게 아닌가요? items.getName() 도 아니고 어떻게 호출이 되는지 이해가 안가서 질문 남깁니다
- 미해결김영한의 실전 자바 - 기본편
상속 관계에서 기본생성자 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상속 관계에서 protected 생성자가 아닌 private으로 문제와 풀이 예제를 진행한 이유가 있을 까요?
- 미해결김영한의 실전 자바 - 기본편
자바 메모리 구조 강의를 들으면서 질문 있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요! 제가 알고 있는게 정확한지 알고 싶어서 질문 드립니다! 힙 영역에는 new 키워드를 통해 동적으로 생성된 인스턴스가 존재하는 지역이라고 설명해주셨는데클래스 로더에 의해 바이트 코드를 통해 메서드 영역에 생성자, 메서드 등 정보가 저장되고, 힙 영역에 클래스 타입의 인스턴스도 생성되지 않나요??