월 14,300원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Array 관한 예문
안녕하세요, 선생님. 어제 배열 파트를 다시 복습하면서 생긴 문제가 있습니다.선생님께서는 for반복문에 for -each문을 이용하면서 출력되도록 하셨는데저는 조금 더 간결하게 하고자 for-each문 없이 주석처리한대로 해보니사이즈[I@75b84c92(재고있음) 이렇게, 사이즈에 해당하는 값은 안나오더라구요.혹시 이렇게 접근하면 안되는 이유가 있을까요? 두 번째로는 메소드에 관한 문제입니다.아래 코드처럼 메소드 값을 메인영역 밖에서 호출 시 에러나는 이유가 무엇인가요?잘은 모르지만 혹시나 지역변수 이런 것과 상관이 있는건가요? //Quiz. 배열을 활용하여 쇼핑몰에서 구매 가능한 신발 사이즈 옵션을 출력하는 프로그램을 작성하시오 //조건 : 신발 사이즈는 250부터 295까지 5단위로 증가 //조건 : 신발 사이즈 수는 총 10가지 //실행결과 : 사이즈 250 (재고있음) / 사이즈 260 (재고있음),,, size에 해당하는 값을 배열로 만들기 // int size = 250; // int size = 255; // int size = 260; int[] size = new int[10]; for (int i = 0; i < size.length; i++) { size[i] = 250 + (5 * i); // System.out.println("사이즈"+size+"(재고있음)"); //왜 안되는지????????? } for (int size2 : size ) { System.out.println("사이즈"+size2+"(재고있음)"); } ------------------------------------------------------------------------------- public class Test1 { //호텔 전화번호 public static String getPhoneNumber(){ return "02-123-4567"; } //호텔 위치 public static String getAddress(){ return "서울시 어딘가"; } //호텔 엑티비티 public static String getActivities(){ return "수영장, 당구장, 볼링장"; } public static void main(String[] args) { //왜 메인영역 밖에서 호출하면 에러나지????? //메인 밑에서 매소드 호출 System.out.println("호텔위치 : "+getAddress()); System.out.println("호텔 전화번호 :"+getPhoneNumber()); System.out.println("호텔 엑티비티 : "+getActivities()); }
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
For반복문 예제
안녕하세요, 선생님블로그에 선생님 강의 내용에서 예제를 따라치면서 정리하는 과정에 궁금증이 생겨서 여쭤봅니다. 증감연산자의 위치가 여러 예제문에서 헷갈리는데요. (sold++;)int max = 30; int noShow = 15; int sold = 0; for (int i = 1; i <=50 ; i++) { System.out.println(i+"번 손님 나왔습니다"); if(i==noShow){ System.out.println(i+"번 노쇼로 넘어갑니다"); continue; } sold++; if(sold==max){ System.out.println("금일 영업종료"); break; } 위의 코드에서 sold++위치를 아래와 같이 바꿀 경우에 for문 중괄호 안에는 들어가 있어서 가능할 거 같은데 결과는 32번 손님까지 이어지네요. 비슷한 예제로 while문에서는 증감연산자의 위치가 break뒤에 위치한 경우 결과값이 올바르게 나오는데 확실하게 증감연산자의 위치를 구별 할 수 있는 방법이 있을까요?int max = 30; int noShow = 15; int sold = 0; for (int i = 1; i <=50 ; i++) { System.out.println(i+"번 손님 나왔습니다"); if(i==noShow){ System.out.println(i+"번 노쇼로 넘어갑니다"); continue; } sold++; if(sold==max){ System.out.println("금일 영업종료"); break; } sold++; } ------------------------------------ //while문 -break int index = 1; //손님 대기번호 , for와 달리 변수가 필요함(중요) while(index <= 50){ System.out.println(index+"번 손님 주문하신 치킨 나왔습니다"); if(index == 20){ System.out.println("금일 재료가 모두 소진되었습니다"); break; } index++; }
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
다차월 배열의 순회
복습 중에 헷갈리는 게 있어서 질문 드립니다 :)질문-1) 코드를 반복해서 작성하는 이유가 뭔가요?(아래 비교 예시 있습니다.)String[][] seats = new String[10][15]; String[] eng = {"A","B","C", "D", "E","F","G","H","I","J"}; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { seats[i][j] = eng[i] + (j + 1); } } for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { System.out.print(seats[i][j] + " "); } System.out.println(); }String[][] seats = new String[10][15]; String[] eng = {"A","B","C", "D", "E","F","G","H","I","J"}; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { seats[i][j] = eng[i] + (j + 1); System.out.print(seats[i][j] + " "); } System.out.println(); } 이렇게 줄여도 똑같이 출력되는 데 반복하는 이유가 궁금합니다. 배열 값 업데이트를 위해서 그렇게 한 건가요? 질문-2) 누군가 표를 구매해서 좌석 업데이트 할 때, 코드 진행 방식이 헷갈립니다. 1번에서 2차원 배열의 형태가 만들어 진 후,seats[7][8] = "___"; seats[7][9] = "___"; 여기서 업데이트 된 후에 아래에서 출력할 때 새로운 배열 값인 "___" 이게 추가된 상태로 출력되는 건가요?// 1번 String[][] seats = new String[10][15]; String[] eng = {"A","B","C", "D", "E","F","G","H","I","J"}; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { seats[i][j] = eng[i] + (j + 1); } } // 2번 // 누군가 H9, H10 자리에 표를 구매 seats[7][8] = "___"; seats[7][9] = "___"; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { System.out.print(seats[i][j] + " "); } System.out.println();
- 해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
recurvie (fractal), GUI, Server
안녕하세요.공부를 하다보니 조금 더 욕심이 생기네요. 다음에 기회되신다면 recurvise, GUI-Fxml과 scene builder, Server 쪽 주제로 강의 해주시면 감사하겠습니다. 자바를 공부하다보면 위의 주제는 꼭 나오더라구요. 조만간 자바 완전체 기다해겠습니다.^^건승하세요.
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
if문 - 부정연산자
안녕하세요.If문 부정연산자 관련하여 문의 드립니다. 아래 식에서 !(부정연산자)가 추가되어 false -> true 로 되는 것까지 이해하였습니다.그럼 if (hour < 14 && morningCoffee == true) 라는 식이 성립되는데if (hour < 14 && morningCoffee == false) 이 식과 어떻게 동일한지 이해가 되지 않습니다.. hour = 10;boolean morningCoffee = false; if (hour < 14 && !morningCoffee) sout("아이스 아메리카노 +1")
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
수강 범위에 대한 질문입니다 ㅠㅠㅠ
안녕하세요 나도코딩님 오늘도 열심히 공부중인 학생입니다 ㅠㅠㅠ복수전공 과목 중 자바로 배우는 자료구조를 수강중인데 사전에 자바 공부도 없이 듣는 수업이라 도통 무슨 소린지 이해가 가질 않네요..그래서 현재 고급편 결제하고 섹션9 추상클래스 까지 들은 상태인데 뒤로 갈수록 내용이 어려워져서 복습한다고 속도가 너무 늦어지는 상태에요..자료구조 내용을 이해하려면 일단 어떤 파트를 필수적으로 빨리 들어야 하고 어떤 파트는 빼도 되는지 알려주실 수 있을까요??ㅜ 답변 주시는데 도움이 될 지 모르겠지만 교재 한 챕터에{자바 데이터 타입(기본타입, 참조타입), 제어문(조건문,반복문), 메소드(호출문,메인), try문}이렇게만 존재하긴 하는데 중간중간 책에는 없는 추상클래스, 입력문 같은 파트도 보여서 감이 안잡히네요..
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
인터페이스 변수
안녕하세요~ 강사님, 인터페이스(후반전) 강의를 듣고 있는데, 왜 인터페이스 변수를 만드는지 이해가 가지 않습니다. 수업 내용에서 FactoryCam이 인터페이스 Detectable과 Reportable을 구현하여 인터페이스에 있는 메소드를 FacstoryCam에서 구현해야한다는 것은 이해했습니다.그리고 다른 클래스의 detect 메소드와 report 메소드를 호출하는것이라서 public void detect(){detecter.detect();} 이고, detecter은 객체이잖아요. 여기서 막힙니다. 이 객체랑 인터페이스 변수랑 무슨 상관인지? FactoryCam 의 인터페이스 변수를 생성해서 변수에 값 저장하는 걸로 하면 되지 않는지? 왜 인터페이스 변수를 선언해서 거기다가 값을 저장하는지, 잘 이해가 안 됩니다....ㅠㅠ 그리고 추가로, 인터페이스로 다중 상속이 가능하다고 하셨는데, 수업 내용 중 어떤 것이 다중 상속이 되고 있는지 파악하기가 어렵습니다. 혹시, 다른 클래스의 메소드를 호출할 수 있는 부분때문에 다중 상속이 가능한 것인가요? 후반부로 갈수록 어렵네요 ㅠㅠ
- 해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
코드 파일 런 버튼 비활성화
선생님 안녕하세요~제가 작성한 코드 파일을 실행하려는데 어떤 파일은 오른쪽 상단의 세모버튼(run 버튼)이 비활성화되어있더라고요..그래서 상단메뉴에서 run을 클릭하면 Run 0 Edit Configurations라는 팝업창이 뜨는데요.이럴 때는 어떻게 하면 좋을까요?
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
강의 내용 블로그 정리방법
선생님 안녕하세요, 백앤드를 희망하며 독학 중인 학생입니다.다름이 아니라 선생님 강의를 일단 1회독을 가볍게 보고 따라치면서 자바가 어떤건지 이해하고 2회독을 하면서 그땐 블로그에 정리도 함께 하고자 합니다. 그래서 여쭤보고 싶은 부분은, 많은 분들이 블로그에 공부를 정리한 용도로 많이 올리시는데저 역시 선생님 강의를 제가 배운 내용을 토대로 올리고자 하지만(출처 밝힘)어떤식으로 어떻게 올려야 할지는 감이 안와서요..막상 배운 내용을 그대로 따라 올리는건 복사 붙여넣기밖에 안될 것 같고빈 백지 상태에서 배운 코드를 하나씩 쳐보자니 시간이 많이 걸릴 것 같고 (이 단계까진 시간이 많이 걸릴 것 같습니다)강의 내용에 관한 궁금증과 별개이지만 배운 내용을 블로그에 정리하는 팁?을 알려주시면 감사하겠습니다!!
- 해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
입출력 파트
선생님 혹시 고급편 입출력 파트만 먼저 수강해도 되나요? 만약 입출력파트 이해를 위해 앞의 파트 수강이 필요하다면 어느 파트를 먼저 수강해야할까요? 오늘 유튭으로 기본편 모두 완강했고 고급편도 결제했습니다!
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
나도코딩님! 퀴즈 7번을 다음과 같이 풀어봤는데, 피드백 부탁드립니다 😄
package chap_07; public class _Quiz_07 { public static void main(String[] args) { HamBurger[] hamBurgers = new HamBurger[3]; hamBurgers[0] = new HamBurger(); hamBurgers[1] = new CheeseBurger(); hamBurgers[2] = new ShrimpBurger(); System.out.println("주문하신 메뉴를 만듭니다."); System.out.println("---------------"); for (HamBurger hamBurger : hamBurgers) { hamBurger.cook(); System.out.println("-----------------"); } System.out.println("메뉴 준비가 완료되었습니다."); } } class HamBurger{ public String name; public String[] ingredients = {"양상추", "패티", "피클"}; // 기본 재료를 배열로 초기화 public HamBurger(){ this("햄버거"); // 다른 클래스를 호출 } public HamBurger(String name){ this.name = name; } public void cook(){ System.out.println(this.name + "를 만듭니다."); System.out.println("빵 사이에 들어가는 재료는?"); System.out.println(" > " + ingredients[0]); for (int i = 1; i < ingredients.length; i++) { System.out.println(" + " + ingredients[i]); } } } class CheeseBurger extends HamBurger{ private String ingre = "치즈"; public CheeseBurger(){ super("치즈버거"); // 부모클래스를 호출하여 "치즈버거"로 name 초기화 } public void cook() { super.cook(); System.out.println(" + " + getIngre() ); } public String getIngre() { return ingre; } } class ShrimpBurger extends HamBurger{ private String ingre = "새우"; // 새우 재료를 은닉 public ShrimpBurger(){ super("새우버거"); } public void cook(){ super.cook(); System.out.println(" + " + getIngre()); } public String getIngre() { return ingre; } }사실 저는, this()와 super()로 다른 클래스를 호출하는 방법을 잘 몰라서, 클래스마다 this.name = "str"; 으로 다 초기화했거든요 😅 "양상추", "패티", "피클" 이 기본재료라서 배열로 초기화해줬고, 여기서 애로사항이 for-each문으로 출력을 하려고 했는데, " < " 와 " + " 부분이 달라서 그냥 for문으로 위와 같이 출력했습니다.제가 궁금한 점은 첫째로, 만약 저렇게 재료들을 배열에 초기화시켰다면, 자식클래스에서 부모클래스의 배열에 접근해서 요소들을 추가할 수 있나요??둘째로, 자식클래스의 재료들을 private으로 데이터은닉을 시킨다음에 getter함수로 출력을 해도 괜찮나요?P.S: 항상 양질의 강의를 제공해주셔서 감사합니다! 퀴즈덕분에 고민하는데 시간이 오래걸렸지만, 제가 모르는 부분도 수정할 수 있어서 좋은 것 같아요!!
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
업로드 관련 문의
선생님, 안녕하세요 :)부트캠프 참여 전, 자바 개념을 잡기 위해 본 강의를 열심히 수강 중인 학생입니다.우선 양질의 강의 진행해 주심에 진심으로 감사드립니다! 더불어, 깃허브와 블로그에 학습 내용 정리와 관련하여 문의드립니다.해당 질문 관련 1월과 3월에 답변 주신 내용이 다소 상이하여 재문의 드리는 점 양해 부탁드리며,하기 조건에 유의할 경우 클래스 이후 강의까지 업로드 가능한지 궁금합니다.답변 기다리겠습니다, 감사합니다! :) 강의 내용을 응용한 코드를 작성해 깃허브와 블로그에 개인 복습용으로 업로드하고자 합니다.제가 아직 기초 단계인지라 강의 진행 흐름과 풀이 과정이 다소 유사할 수 있으나,클래스 강의부터는 제가 이해한 내용을 정리하는 차원에서 최대한 정제해 업로드할 예정입니다.'[Inflearn] 나도코딩의 자바 기본편' 출처를 필수 기재할 예정입니다.블로그의 경우, 이익 창출과 전혀 무관합니다.
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
안녕하세요 강사님께서 참조를 손으로 비유적으로 표현하셔서 저도 강의 내용의 코드를 그림으로 표현해봤는데 이 내용이 맞는지 확인부탁드립니다.
Camera c1 = new Camera(); // c1은 첫번째 풍선을 잡고 있음 Camera c2 = new Camera(); // c2는 두번째 풍선을 잡고 있음 Camera tempCam1 = c1; // c1의 손을 잡아달라고 요청 Camera tempCam2 = c2; // c2의 손을 잡아달라고 요청 c2 = c1; ... changeName(c2); System.out.println(c1.name); System.out.println(c2.name); c1 = null; c2 = null; // c1, c2가 풍선을 놓침!! System.out.println("----------------"); c1 = tempCam1; // c1은 tempCam1의 손을 잡음 c2 = tempCam2; // c2는 tempCam2의 손을 잡음 // changeName(c2)에 의해 c1이 잡고 있는 풍선의 이름만 "잘못된 카메라"로 변경 //(=>null로 인해 가리키는 관계는 끊겼지만, 참조값이 변경된 메모리는 여전히 남아있다는 소리) System.out.println(c1.name); // 잘못된 카메라 System.out.println(c2.name); // 카메라2 public static void changeName(Camera camera){ // c2의 인자가 파라미터에 들어가서 camera.name = "잘못된 카메라"; // c2.name = "잘못된 카메라"; }여기서 제가 궁금한 점은, Camera tempCam1 = c1; Camera tempCam2 = c2; 부분에서 temCam1과 temCam2가 그림과 같이 인스턴스 변수뿐만 아니라, 인스턴스 변수가 가리키고 있는 참조값도 동시에 가리키고 있는 것이 맞을까요??
- 해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
예외 구문에 대해서..
try throw catch 구문에서 throw로 예외를 던지면 catch 구문에서 받아서예외에 대한 내용을 출력한다고 이해를 하고있는데뒷쪽 강의를 듣다보니 스레드 join,sleep, 파일 읽기 구문을 try catch 구문으로 감쌀때 RuntimeExeption 과 InterruptedEception 그리고 IOException 친구들은 다른 throw catch 구문과 다른 것 같아서 질문 드립니다..try { thread.join(2500); // 2.5초 대기 } catch (InterruptedException e) { throw new RuntimeException(e); } --------------------------------------------------------------------------- try(BufferedReader br = new BufferedReader(new FileReader("goodjob.txt"))) { String line; while((line = br.readLine()) != null ) { System.out.println(line); } }catch (IOException e) { throw new RuntimeException(); }
- 해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
스캐너
안녕하세요 나도코딩님혹시 식별자,스캐너는 자세히 어디에서 언급되는지 알 수 있을까요? 지금 고급편 결제한 상태고 유튭으로 기본편 4시간 반가량 들었습니다! Scanner scanner = new 어쩌고하는 그런 것이 있던데 이것에 대해 빨리 자세히 알고싶습니다(학교강의 따라잡기 위해서 듣는 거라서요..)
- 해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
스레드 강의에서 코드를 동일하게 작성했는데 결과가 다릅니다.
강의에서는 청소가 번갈아가면서 나오는데 여러번 실행해도 한 번도 번갈아가면서 나오지 않습니다..ㅠ-- 사장 청소 시작 ---- 직원 청소 시작 (Thread) --(사장)1 번방 청소 중(사장)3 번방 청소 중(사장)5 번방 청소 중(사장)7 번방 청소 중(사장)9 번방 청소 중-- 사장 청소 끝 --(직원)2 번방 청소 중 (Thread)(직원)4 번방 청소 중 (Thread)(직원)6 번방 청소 중 (Thread)(직원)8 번방 청소 중 (Thread)(직원)10 번방 청소 중 (Thread)-- 직원 청소 끝 (Thread) -- -- 사장 청소 시작 ---- 직원 청소 시작 (Thread) --(직원)2 번방 청소 중 (Thread)(직원)4 번방 청소 중 (Thread)(직원)6 번방 청소 중 (Thread)(직원)8 번방 청소 중 (Thread)(직원)10 번방 청소 중 (Thread)-- 직원 청소 끝 (Thread) --(사장)1 번방 청소 중(사장)3 번방 청소 중(사장)5 번방 청소 중(사장)7 번방 청소 중(사장)9 번방 청소 중-- 사장 청소 끝 -- 이 두가지만 나오는데다른 이유가 있을까요..?
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
for 문_ 35강 (~까지 수들의 합 구하기)
질문 -> //1. 2의 거듭제곱 반복문을 이렇게 만들어도 될까요? //2. 2^1, 2^2까지의 총합: ... 입니다. 출력되는 말을 다르게 하고 싶은 데 if 문이 너무 길어집니다. if 문 짧게 하고 만들고 싶습니다. public class _05_For { public static void main(String[] args) { //생각나서 만든 2의 거듭제곱 For 문 // 2의 0승부터 2의 10승까지의 합: 2047이 나와야 한다. // 출력되는 문장들의 말을 다르게 하고 싶다 2^1, 2^2까지의 총합: 이런 식으로 int Sum = 0; for (int s = 0; s < 11; s++) { Sum += Math.pow(2, s); //거듭제곱을 계산하기 위해 Math.pow함수(?)를 가져옴 if(s == 0) { System.out.println("2^0까지의 총합: " + Sum + " 입니다."); } else if (s == 1) { System.out.println("2^1까지의 총합: " + Sum + " 입니다."); } else if (s == 2) { System.out.println("2^2까지의 총합: " + Sum + " 입니다."); } // 2^10까지 표현하기에는 조건문이 너무 많아짐, 줄이는 방법을 알고 싶다. } System.out.println("2^의 1부터 10까지, 모든 수의 총합: " + Sum + " 입니다."); } }
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
chap_13 Quiz 코드 질문드립니다.
선생님 코드와 내용적으로는 다른 부분이 없는 것같은데 작동이 안합니다.선생님 코드를 복붙하여 폴더 위치만 수정하면 제대로 작동합니다. 어떤 부분을 잘못 작성하여서 작동 안하는 걸까요??import java.io.*; import java.util.Scanner; public class _Quiz_13 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); try (BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\user\\Desktop\\Javaworkspace\\saying.txt"))) { String quiz; String answer; String input; while (true) { quiz = br.readLine(); answer = br.readLine(); if(quiz == null || answer == null) break; } System.out.println("(문제)" + quiz); System.out.print("정답 입력 =>"); input = sc.next(); if(input.equals(answer)) { System.out.println("정답입니다!"); } else { System.out.println("틀렸습니다. 정답은" + answer + "입니다."); } } catch (Exception e) { e.printStackTrace(); } } }
- 해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
메소드에 객체형(?) 변수 넣는 것이 잘 이해가 가지 않습니다.
함수형 인터페이스(전반전) 강의를 듣는 도중pulbic static void convertUSD(Convertible converter, int USD) { converter.convert(USD); }메소드가 어떤식으로 동작되는지 궁금합니다. 추가로 클래스를 생성하고 객체 생성 후 객체를 어떠한 메소드의 변수로 넣었을 때 어떤 식으로 동작되는지 어떨때 사용하는지 예시로 알려주신다면 정말 감사합니다..
- 미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 9번 질문입니다.
저번에 퀴즈 풀다가 static 관련해서 오류가나서 질문한적이 있는데요.이번에도 static관련해서 오류가 났습니다 ㅜㅜ 선생님과 소스코드는 똑같이 쳤는데도 오류가 나네요위의 사진처럼 class Student에 static을 붙이지 않으니까 non-static 변수라서 참조가 안된다는 내용의 오류가 떠서 static을 추가하니까 아래 사진처럼 결과가 나왔는데요.혹시 어떤게 문제일까요 ㅠㅠ?