프로그래머가 될거야!

프로그래머 도전기 11일차

Choyee 2023. 9. 8. 00:08

오늘은 목요일입니다

벌써 일주일의 반이 지나갔군요

미지의 영역에 발을 들여놓아 기초 개념조차 낯설다 느껴지던 시기도

벌써 많이 지나간 느낌입니다

이제 많이 익숙해지면서 다져지고 있다는 느낌이 드는데요

자바를 이용해서 스스로 구구단이나 계산기 정도는 만들 수 있을 정도가 되어

나름 뿌듯한 기분이 들기도 하지만

시간이 지날수록 성장이 더뎌지지 않게 꾸준히 연습을 해야겠습니다

 

 

<<오프라인 JAVA 강의>>

 

<조건문> - if문, switch문

* return = 프로그램 즉시 종료 (함수 종료)

* if문
if문 = 변수의 비교에 좋음
if ~ else문
if ~ else if ~ else문
=> if(비교 조건문){ // 비교문이 true이면 실행문이 작동함
      실행문1;
    }else{  //false이면 실행문2 작동                          
          실행문2;
    }

* switch문 = 정해진 변수 처리에 좋음
switch-case문
=> switch(변수){
        case 1:
        case 2:
        defalut:
    }
* default = case에 없는 경우 처리 (else if 와 같은 기능)

다중 case문
=> case1: case3: case5:
       day = 31

 

012345

​<상수, 변수>

* 변수(Variable) - 자료형 변수
 ex) double pi = 12.5

* 상수(Constant) - 자료형 상수 -> 진리, 공식에 사용
                    = final 키워드사용 -> 관례상 대문자로 표기
                                           -> 변경 불가
 ex) final double PI = 3.1415

* 소수점 원하는 자리까지 끊기
 = printformat 사용
 => 대응 서식 -> 정수 = &d, 실수 = %f. 문자 = %s

 -> printf("문자열 포맷", 객체)
 -> ex) int year 2023;

            System.out.printf("올해는 %d년 입니다", year);

-> ex) System.out.printf("공의 속도는 %2f[MPH]입니다", mph);

                                                            => 소수점 둘째 자리까지 출력


* 줄바꿈 문자 = \n \n(역슬래쉬 n) => printf( ) 사용할 때 자주 쓰인다
 탬 띄어쓰기 = \t \t

012

<반복문> - while문, for문

* while문 => 무한반복 -> 일정 조건에서 정지
=> 초기값;
    while(종료값){
         실행문;
         증감값;
    }


* for문 => 특정 범위, 자료가 많을 때 -> 여러개를 한번에 반복 가능
단일 for문
=> for(초기값; 종료값; 증감값){
         실행문
    }
이중 for문(nested for)
=> for(초기값1; 종료값1; 증감값1){  = 행
       for(초기값2; 종료값2; 증감값2){   = 열    => 종료값2 중요
            실행문
        }
        system.out.println(); 으로 한줄 띄우기 가능
    }

0123

<배열(Array)>
= 여러 개의 값을 처리
* 상수, 변수 = 1개, 메모리에 흩어져서 위치함
          메모리 관리 효율X, 속도 문제

배열의 크기 선언
-> String[ ] 배열이름 = new String[4];  // 배열 크기가 4 선언 = 비어있는 배열 선언
  -> 값 입력(저장) 필요 = 배열이름[ ] = " ";
     
배열을 직접 저장하는 방법
-> String[] cars = {"Sonata", "Morning", "K7", "K7"}

배열의 길이 = numbers.length

01234

<디버그>
= 오류 검색
-> 브레이크 포인트설정 (더블클릭) -> 왼쪽 상단 Debug​

 

 

 

<<오프라인 Python 강의>>

 

<클래스>
= 변수와 함수를 모두 가지고 있는 코드
= 객체를 만들기 위해 class 사용
   객체 이름 = 클래스 이름
   고유한 속성을 가짐 -> 객체도 고유의 속성을 가질 수 있다
                           -> 객체의 함수도 가질 수 있다

* 인스턴스 = 클래스를 이용해서 만든 객체

* isinstance = 사용할 객체를 입력 -> 그 뒤에 클래스를 입력해주면 
                  -> 객체가 뒤의 클래스를 이용해서 만들어 진것인지 판단해줌

* 객체 이름공간 안에서 변수, 함수를 찾고 없다면 -> 클래스로 가서 변수, 함수를 찾는다
  -> 클래스 이름공간에서도 찾지 못하게 되면 -> 전역공간에서 변수, 함수를 찾는다

* dir( ) 함수 = 이름공간에 있는 모든 속성을 리스트로 반환

* 객체마다 다른 이름 공간을 가지기 때문에 변수를 각 객체에 따로 정의해준다면
   그 둘은 다른 값이 나오게 된다

* 생성자
생성자 메서드를 사용하면 => 객체가 만들어진 순간에 생성자 메서드가 호출되어진다
=> 객체에게 필요한 내용을 객체의 생성과 동시에 추가할 수 있게 된다
=> 객체에 필요한 속성들을 매개변수로 넣어준다고 한다면 
    -> 객체를 생성할 때 필요한 인자들을 꼭 넣어주어야 한다

* 소멸자
참조하고 있는 어떤 객체를 객체 변수들이 더이상 참조하고 있지 않을 때 소멸자 메서드가 실행된다

* 변수 자체가 객체는 아니다
  변수 = 객체 => 변수는 이름일 뿐, 객체를 변수에 대입한다는 의미

* str 메서드 = 객체를 문자열로 출력했을 경우에 str 메서드가 호출된다
                    => 객체를 문자열로 반환했을 때 출력값을 지정해줄 수 있는 메서드 

 

* 상속
새로운 클래스를 정의할 때 기존에 있는 클래스의 하위 클래스로 정의할 수 있게 된다
-> 이때 하위 클래스는 상위 클래스의 모든 속성을 물려 받는다 => 재사용이 간편해진다
=> 마찬가지로 인자값을 지정해주어야 한다

=> 상속을 받으면 상위클래스와 하위클래스가 이름밖에 차이가 나지 않게되는데
     -> 하위 클래스는 상위 클래스의 속성을 다시 정의해서 사용할 수 있기 때문에
     -> 차이를 만들 수 있다
=> 재정의를 사용하여 메서드도 재정의 가능 = 매개 변수 추가 가능
=> 하위 클래스에서 상위 클래스로는 접근이 가능하지만
    상위 클래스에서 하위 클래스로는 접근이 불가능하다

 

0123

<모듈>
= 코드를 작성해놓은 파일을 의미 => 모듈화

* 모듈의 활용
= import 모듈명
=> 모듈의 이름이 길어서 사용하기 불편한 경우
     -> as 를 붙이고 별명을 붙여 사용할 수 있다

=> from 명령어를 사용해 하나의 함수만을 가져올 수 있다
   -> from 모듈명 import 함수명
   -> 이 경우에도 as를 붙이고 별명을 사용할 수 있다
=> ,를 사용하여 하나 이상의 함수를 가져와 사용할 수 있다

* 다른 사람들이 만들어 놓은 라이브러리 사용하기
=> pypi.org 접속 -> 검색 -> 찾아보기
     -> 터미널 창 -> pip install 파일명 => 다운로드 됨
=> 삭제할 때 = pip uninstall 파일명

012

 

 

2023. 09. 08 (금)