본문 바로가기
JAVA 수업/java 수업 기록

0527 주말공부

by 예림220 2023. 5. 27.

[책 <첫코딩> 챕터1]

비트 / 코드 / 바이트 / 인코딩 / 디코딩 / 디코딩오류 / 아스키 / 유니코드 / 프로그랭언어 / 컴파일러 / 프로그래밍언어의 종류 / 스크립트 언어 / 마크업 언어 / 속성항목과 속성값 / (.) (=)  

 

비트 

: 0 또는 1 중 하나의 정보를 가지는 쪼끄만 정보 단위 

 

코드

: 약속된 0과 1로 만들어진 부호 

 

바이트 

: 영어로 모두 표현할 수 있는 최소한의 크기 (비트 8개 = 1바이트)

 

인코딩

: 사람의 언어를 컴퓨터 언어로 바꾸는 과정 

 

디코딩

: 컴퓨터 언어를 사람의 언어로 바꾸는 과정 

 

디코딩 오류

: 전달하고 해석할 때 동일하지 않은 코드를 사용하여 발생하는 오류 

 

아스키

: 알파벳을 위한 약속 (8비트 단위) 

 

유니코드

: 모든 언어를 위한 약속 (16비트 단위) 

 

프로그래밍 언어

: 사람이 알아볼 수 있는 언어로 작성하면 이것을 기계어로 번역해서 컴퓨터에게 알려주는 도구 

 

컴파일러

: 컴퓨터 언어 번역기, 사람이 알아볼 수 있는 단어로 작성된 언어를 컴퓨터가 이해하는 언어로 변환하는 작업 

 

프로그래밍 언어의 종류

: C언어, C++, C#, 자바, 자바스크립트, 파이썬 

 

스크립트 언어

: 한꺼번에 기계어로 번역하지 않고 실행할때 마다 번역하는 언어로 코드가 짧고 간단하다 (예: 자바스크립트, 파이썬)

(스크립트 언어에서 번역하는 도구 - 인터프리터) 

 

마크업 언어

: 정보를 전달하기 위한 틀을 제공하는 언어 (예: HTML5)

 

속성항목과 속성값 구별

: (예시) 고양이

속성항목 - 나이,  이름

속성값 - 7살, 나비

 

점(.)

: '~의' 

 

: '오른쪽 값을 왼쪽에 입력해라'

 

[책 <Head First Java> 챕터 4]

4. 메소드에서는 인스턴스 변수를 사용합니다 

<객체의 행동>

- 객체의 상태와 행동

잊지마세요: 클래스에서는 객체가 아는 것과 객체가 하는 것을 기술합니다. 

 아는 것: 인스턴스 변수(상태) 

 하는 것: 메소드(행동)

- 메소드에서는 인스턴스 변수를 사용합니다.

 

(코드 예제 만들어보기)

(실행 결과)

 

- 메소드 매개변수 

 메소드에 뭔가를 보낼 수도 있습니다. 

 메소드에서 사용하는 것은 매개변수, 호출하는 쪽에서 전달하는 것은 인자 

 메소드에서 매개변수를 받도록 선언했따면 그 메소드를 사용할 떄 반드시 무언가를 전달해야 합니다. 그리고 그 '무언가'는 반드시 정해진 유형의 값이여야 합니다. 

 

- 메소드에서는 인스턴스 변수를 사용합니다. 

 메소드에서는 뭔가를 돌려받을 수도 있습니다. 

 리턴 유형을 void로 선언하면 그 메소드에서는 아무것도 리턴하지 않습니다. 

 메소드를 선언할 때 어떤 값을 리턴하겠다고 선언했다면 반드시 그렇게 선언한 유형의 값을 리턴해야 합니다.

 

- 인자 여러 개 

 메소드에 인자 두 개 이상을 전달할 수도 있습니다. 

 매가변수 여러가개 필요하다면 선언할 때 각 매개변수를 쉼표로 구분해서 쓰면 됩니다. 무엇보다도 중요한 것은 메소드에 매개변수가 있을 때 그 유형과 순서를 정확하게 맞춰서 전달해야 한다느 것입니다. 

 

*핵심정리 

- 클래스에서는 객체가 아는 것과 객체가 하는 것을 정의합니다.

- 인스턴스 변수(상태)는 객체가 아는 것입니다.

- 매소드(행동)는 객체가 하는 것입니다. 

- 메소드에서 인스턴스 변수를 이용하여 같은 유형의 객체가 다른 식으로 행동하게 할 수 있습니다. 

- 매소드에서 매개변수를 사용할 수 있습니다. 즉 메소드에 값 한 개 이상을 전달할 수 있습니다. 

- 전달하는 값의 개수와 유형은 반드시 메소드를 선언할 때 지정한 것과 같아야 하며 순서도 같아야 합니다.

- 메소드 안팎으로 전달되는 값은 상황에 따라 자동으로 더 큰 유형으로 올라갈 수 있습니다. 더 작은 유형으로 바꿔야 한다면 강제로 캐스팅해야 합니다.

- 메소드를 선언할 때 반드시 리턴유형을 지정해야 합니다. 리턴 유형을 void로 지정하면 아무것도 리턴하지 않아도 됩니다.

- 메소드를 선언할 때 void가 아닌 리턴 유형을 지정할 때는 반드시 리턴 유형과 호환 가능한 값을 리턴해야 합니다. 

 

- 매개변수와 리턴 유형 활용 방법 (getter 와 setter) 

 게터는 단지 그 게터가 가져오기로 되어있는 값을 리턴값 형태로 받아오기 위한 용도로만 쓰입니다.

 세터는 그 세터가 설정한 값을 인자로 받아서 인스턴스 변수를 그 값으로 설정하기 위한 용도로 쓰입니다. 

 

- 캡슐화 

세터 메소드를 사용하여 데이터에 직접 접근할 수 없도록 만든다.

접근 제어자를 사용하여 나중에 코드를 수정할 권한을 보호한다. 

캡슐화를 하려면 인스턴스 변수를 private으로 지정하고 접근 제어를 위해 public으로 지정된 게터와 세터를 만들면 됩니다.  == 인스턴스 변수는 private으로 게터와 세터는 public으로! 

 

(캡슐화 코드 예제)

(실행결과)

 

- 인스턴스 변수 초기화

 인스턴스 변수에는 항상 어떤 기본값이 들어갑니다 (그래서 인스턴스 변수를 무조건 초기화할 필요는 없습니다) 

 인스턴스 변수의 기본값 

 : 정수 0 / 부동소수점 수 0.0 / 부울 false / 레퍼런스 null

 

- 인스턴스 변수와 지역변수의 차이점 

 인스턴스 변수는 클래스 내에서 선언되며, 기본값이 들어있습니다.

 지역변수는 메소드 내에서 선언되며, 기본값이 없기 때문에 지역변수를 초기화하기 전에 사용하려고 하면 컴파일 과정에서 오류가 납니다. (= 지역변수는 반드시 초기화를 해줘야 한다.) 

 

- 변수(원시 변수와 레퍼런스) 비교 

 원시 유형 두개를 비교하거나 레퍼런스 두 개가 같은 객체를 참조하고 있는지 알고 싶다면 ==를 쓰면 됩니다.

 서로 다른 두 객체가 똑같은지 알고 싶을 때는  equals()메소드를 사용하면 됩니다. 

 

--- 수열썜 강의 정리 

 

클래스 

(변수, 메서드) (+생성자, 게터세터) 

 

코드작성을 계속 연습해야 될 것 같다. 

오류가 발생하기는 해도 쓸 수 있다는 게 신기하다 

(❁´◡`❁)(❁´◡`❁)

'JAVA 수업 > java 수업 기록' 카테고리의 다른 글

0529 공부  (0) 2023.05.29
0528 주말공부  (0) 2023.05.28
0526 수업 내용  (2) 2023.05.26
0524 수업 내용  (2) 2023.05.24
0523 수업내용  (0) 2023.05.23