본문 바로가기

새끼코딩오리

JAVA 국비 KDT 백엔드 온라인과정 1주차 정리

원래 개념은 어렵다. 첫술에 다 이해가 불가능하다고 생각한다(?)

<키워드 위주로. 좀더 기억하고 싶은 것들 다시 정리. 틀린부분 있을 수 있으니 많은 지적 해주세요... 라고 하기에 이걸 읽은 사람은 없어보인다 ..>


함수, 매서드, 객체, 객체지향 , 캡슐화, 다형성, 상속, 추상화, 은닉화, class, 인스턴스(new), 생성자(constructor), this, 멤버 변수, 접근제어자, 자료형(기본,참조-배열,클래스,인터페이스,열거), 변수, 변수명, 초기화, 접근연산자(.), 카멜표기법, 오버로딩, getter, setter, 오버라이딩, super, extends, 패키지(폴더), PascalCase, final, scanner, 형변환(캐스팅), 증감연산자,

 


실전 부분?
  • Integer.parseInt(String ) - 숫자형태 문자열을 int형으로 변환해줌. 문자열에 문자들어가있으면 오류나더라..
  • Integer.toString(int ) -반대겠지?? 신기한게 int형에 +""하면 문자열로 변해버린대.
  • Integer.valueOf(String ) , String.valueOf(int ) -?
  • nextInt(), nextLine(), nextLong()...    close는 종료할때 쓴다는데 정확히 어떤 의미인지 모르겠음.(안써도 닫히던데?)
  • 배열에 입력받으려면 for문돌려서 입력받는 중. 다른 편리한 방법 있을까(?) 나중에 찾아보자
  • string.charAt(0~) - 문자열 순서대로 하나씩 char형으로 가져올수 있음.0부터 시작인건 알지?
  • double 형 변수랑 숫자랑 연산할때 1.0 , 2.0 이렇게 알려줘야 됨.
  • int->double 에 넣어버리는건 문제가 안되는데 double->int 일때 강제 형변환(캐스팅) 필요. 자료 일부 소실가능.
  • 이중포문 안쪽 for문 break는 첫 for문으로 이동, while에 true넣고 사용 많이 함.
  • 배열길이확인.length  문자열 길이확인 .length() 
  • 향상된 for문 익숙해지자 ,,,마치 for( [ i ] : arr ){ } 느낌~   거꾸로 출력하려면 리스트로 뒤집고 출력하나보다.
  • 2차원 배열 이중for arr[ ].length 와 arr[ i ].length는 다르다.  2중 향상된 for문으로 설계하는거 익숙해지자 다음에..
  • 반올림하기 Math.round(double ~) 소수점이하 버리고 1자리 반올림임.
  • while(cnt <=5) 식으로 이용하면 기회 5번 입력받는 형태 만들수있음 오!
  • 선택정렬 - min값을 지정하고 비교해서  앞으로 이동

 

 


 

이론 부분?
  • 클래스 변수 - static으로 선언, 클래스로 직접 접근. 모든 인스턴스가 공통적인 부분을 유지해야할 때 사용.
  • 생성자 - 메서드임.클래스명과 동일하게 명명. 매개변수 없을 시 없는 디폴트 생성자 생성. 매개변수로 오버로딩 가능(생성자뿐만아니라 메서드도). 리턴타입 없음. 디폴트 생성자가 다른 매개변수 있는 생성자 호출 가능하고 첫줄에서만 가능함.         <매개변수 받는 생성자 있고 디폴드 생성자는 없으면 디폴트로 인스턴스 생성 불가>
  • 자식 클래스는 생성자 상속 안받음(이게 생성자는 오버라이딩이 불가능하다는 소리). 인스턴스화 될때 부모클래스의 기본 생성자 호출. 근데 부모클래스에서 매개변수가 존재하는 생성자 작성하면 자식은 생성자가 존재하지 않아 오류. 이럴경우 자식에서 무조건 생성자 명시해야함. super()를 쓰자. 추가작업가능.
  • JAVA 는 파일명과 동일한 이름의 public class에서, main 메서드를 찾아 실행한다.                                                      (같은 class에 public class 여러개면 안되던데 이유가 이것 때문인듯)
  • protected - 다른패키지에서 접근 불가, 다른패키지의 자식클래스는 접근가능. 디폴트는 같은 패키지.
  • getter - 당연히 반환형 존재, 매개변수x(있을수도 있겠지?),  setter- 당연히 매개변수 존재, 반환형x(있을수도 있겠지?)  함수화해서 통제가 가능해짐.
  • 오버로딩은 매서드 시그니처에 따라 다르게 정의, 오버라이딩은 동일한 메서드 시그니처로 재정의(주로 내용 더넣을때 씀) 당연히 오버라이딩 접근제어자, 반환형 동일해야함(자식 접근제어자가 더 넓거나 하위 자료형이면 가능)
  • String이 대문자인 이유 클래스(참조자료형)이기 때문이다. 충격이었음
  • static 메소드는 static 변수만 사용해야한다 멤버변수x, 일반 메소드에서는 static변수 멤버변수 둘다 사용가능. static 메소드만 모여 있는 클래스를 Util 클래스라고 한다. 맨날 import 해오던것. 2차충격
  • 지역변수 - 메소드 내부선언. 메소드 반환시 메모리에서 제거.
  • 멤버변수- 인스턴스가 생성될 때 생성. 인스턴스가 더 이상 쓰이지 않을 때 제거(garbage collection이 해준대 JVM??)
  • static변수 - 프로그램 실행할 때 생성. 프로그램 끝날때 삭제(그럼 너무 비효율적아님? 근데 free라는게 있대? 보류)

코테 부분?
  • 공배수(while문 돌리면서 if로 두수 의 나머지가 둘다 0일때를 출력시키면 됨. 0이아니면 contunue로 계속 올려)
  • 욕설 필터링 받은 문자열을 charAt으로 반복문 돌려가면서 검사. if문으로 문자 지정하고 걸리면 해당 문자를 *로 String temp 에 저장 아니면 그냥 temp에 저장. 그리고 temp출력하면 필터링 됨. 일단 이 수준.
  • 구구단 이중포문, 학점 등  약수구하기(나머지가 0이되면 약수지 뭐)
  • 별찍기 2중 for , 차례로 쌓이기 뒤집어서, 위아래로 등등 다양하게 연습해야 함. 아직 헷갈림.
  • 복리 M(원금) x (1+N(연 이자율))k(유지기간)승 뭐야 제곱근 어떻게 표기해(배울 것 투성이 ㅎㅎ) 입력은 돈이니까 정수로받고 계산은 double로 해야 정확하다.

 


 

질문
  • 트랜지스터는 전자를 직접 보유하고 있는가? ...
  • 정렬 종류 좀 공부하자 구현법 까지~~

 

1주차 배운내용이다. 맞나 이거?? 날짜별로 정리해야 할 수준인데.. 10여년 전에 C하면서 변수 반복문 배열 등 정도는 봐둬서 간간히 생각나 다행이지 아무것도 모르는 쌩 비전공이면 상당히 당황하겠는데....... 배움 속도 무엇..... 이게 1주일동안 머리에 집어넣은 내용이다. 당연히 안적은 것들도 수두룩하다 머릿속에 어느정도 저장된 것들.... 근데 수업 중 나오는 질문들이 상당히 높은 수준이 많다. 갭차가 엄청나게 크다. 전공자와 비전공자의 차이가. 공부 안해서 좀 다지러왔다의 수준이 아니고 실력 상당한 전공자분들 이 왜... (????). 갈 길 가자. 시간이 해결해 주겠지.

 

+해야할것 깃, 깃허브, 맥사용법익히기ㅠㅠㅠㅠㅠㅠㅠㅠ 

 

계속 가보자. 생각을 많이 하면 안된다. 그냥 한다.