마트철수

[030] 클래스는 필드, 생성자, 메소드 본문

KB IT's Your Life/교육

[030] 클래스는 필드, 생성자, 메소드

마트스 2024. 6. 19. 19:20

 
2024.06.19(수)
 
JAVA 3일차
 
클래스 Lv.3까지 직접 풀어보기 필수

클래스는 필드, 생성자, 메소드를 내포함

▲ 위 개념은 명확히 이해해두기
 
Home: 개발환경 - import 설정 구축해두기
 
 


 

ch05 참조 타입 - 배열

 
배열(Array) 타입

: 변수는 하나의 값만 저장 가능

: 연속된 공간에 값을 나열, 각 값에 인덱스 부여한 자료구조

 

new 연산자로 배열생성

: 타입[ ] 변수 = new 타입[길이];

: new는 heap → 타입과 관계없이 0 할당

 

배열 길이

: JS와 달리 read only, 길이 고정임

: 배열변수.length;

 

다 차원 배열

: 타입[][] 변수 = {

   {값1, 값2, ...},

   {값3, 값4, ...},

  };

 

String[][] names = new String[2][];

 

[030] 클래스는 필드, 생성자, 메소드

 

 

ch06 클래스

 

CH06~08 정말 중요함

 

객체 지향 프로그래밍

 

JAVA는 절차형이 아닌 객체 지향

우리 생활에서는 공식이 없기 때문에 맵핑 되지 않음

소설을 참고하면됨 → 글로써 장황하게 설명 = 프로그래밍도 동일

 

클래스 선언

: public class 클래스명 { ... }

관례상 Pascal 표기법

 

#클래스 안에는 데이터(필드)와 동작(메소드)

 

클래스의 구성 멤버

: 필드, 생성자, 메소드

#생성자가 무엇인지 이해하는것이 오늘의 목표

 

필드 선언과 사용

: 객체의 데이터를 저장하는 역할

#초기값이 없으면 주소값만 있는것 ... 허공을 가져온것

#클래스 내부에서는 '0'의 값을 자동으로 줌

 

생성자 선언과 호출

 

- new 연산자: 객체를 생성한 후 연이어 생성자를 호출해서 객체를 초기화 함

- 기본 생성자: 모든 클래스는 생성자가 존재한다

# 컴파일러는 기본 생성자를 바이트코드 파일에 자동으로 추가 → 그래서 모든 클래스는 생성자를 갖는다.

# 생성자 호출할 때, 괄호는 필수임 ... p.25 필기 참고

 - 필드 초기화

: 객체마다 다른 값을 가져야 한다면 생성자에서 필드를 초기화

ex) public Korean(String n, String s){

      name = n;

      ssn = s;

      }

...

Korean k1 = new Korean("박자바", "011 ...")

 

메소드 선언과 호출

: 객체의 동작을 실행 블록으로 정의하는 것

 

ex) 리턴타입 메소드명 (매개변수, ...) { ... }

ex) 가변길이 매개변수: int sum(int ... values) { ... 매개변수의 개수와 상관없이 매개값을 줌

 

return 문

: 리턴값과 타입은 항상 동일해야함

 

#Setter & Getter 코드 사용

 - setter는 주는 것

- getter는 가져오는 것

 

인스턴스 멤버

: 선언 방법에 따른 멤버의 구분

 

멤버 = 필드 + 생성자 + 메서드 통틀어서

2가지로 구분 ... 인스턴스 멤버, 정적 멤버

 

- 인스턴스 멤버: new 로 만들어서 접근, 객체 소속

- 정적(static) 멤버: 클래스에 고정된 멤버, 항상 존재

 

final 필드와 상수

: 초기값이 저장되면 최종적인 값이 됨 = 상수랑 비슷(read only data)

 

- 인스턴스마다 다른 상수값을 가질 수 있음

- JS의 상수는 단 하나의 값만 가지는 유일성이 있음

 

상수 선언 ... static

: 불변의 값을 저장하는 필드면서, 하나의 값을 가지는 값