[책 <첫코딩> 챕터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 |