일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 시간 복잡도
- ☆
- 자바
- 자바개념
- 백준9단계
- 자바공부
- 다이나믹 프로그래밍
- 브루트포스
- BFS
- 백준단계별로풀어보기
- 동적계획법
- 개발공부
- java
- 알고리즘
- dfs
- 자바의정석
- 알고리즘공부
- dp
- 빅오 표기법
- 백준
- 코딩공부
- 자바의정석연습문제
- 백트래킹
- ★
- Java개념
- 자바의정석연습문제풀이
- 백준알고리즘
- 백준자바
- 무료개발강의
- 무료코딩강의
- Today
- Total
더 많이 실패하기
코딩공부 23일차: 프로그래머스 자바 입문 - 6. 클래스 다듬기 본문
#비전공자개발 공부 23일차
프로그래머스 자바 입문 강의를 듣는 중이다
https://school.programmers.co.kr/learn/courses/5
자바 입문
자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금
school.programmers.co.kr
파트6 클래스 다듬기:
생성자
클래스 생성 후 객체를 만들 때 new연산자 뒤에 붙는 것이 생성자
생성자는 메소드와 달리 리턴타입을 적지 않는다
매개변수를 지정하지 않으면 컴파일할 때 자동적으로 매개변수 없는 생성자가 만들어진다
이러한 생성자를 기본 생성자라고 한다
위처럼 생성자를 하나 생성하고 연결된 다른 파일로 넘어간다
첫 번째 예시처럼 car파일에서 string 형식의 매개변수 n이 있는 생성자를 넣으면
기본 생성자를 만들어내지 않으므로 6줄에 있는 생성자는 오류를 띄운다
따라서 사용자가 정의한 생성자를 따라 객체를 만드는 수밖에 없다
생성자는 객체를 만들 때 필드를 초기화하는 역할
실습 엄청 헤맷는데 Person을 person이라고 써서 그런 거였다
이놈의 대소문자..
답 떠먹여줫는데도 대문자하나 떄문에 엄청 헤맸다
파트6 클래스 다듬기:
this
변수는 알아보기 쉬운 이름으로 하는 것이 적절하다
따라서 위에 만든 변수 n은 name으로 직관적으로 알 수 있게 해야 한다
하지만 이러면 객체 이름(클래스 필드)과 변수 이름이 겹쳐져 성립되지 않을 수 있는데
이럴 때 this를 사용하면 현재 객체, 자신을 나타내게 된다
즉 Car 클래스의 생성자가 클래스 필드 name에 매개변수 name을 저장하게 한다
클래스 안에서 그 클래스가 갖고 있는 메소드를 쓰고 싶을 때도 this.메소드이름 으로 사용할 수 있다
파트6 클래스 다듬기:
메소드 오버로딩
매개변수의 수, 타입이 다를 때 구분하기 쉽게 하기 위해 같은 이름의 메소드를 여러 개 만들 수 있다
위의 예시는 매개변수의 숫자나 타입이 다른데 이럴 때 사용할 수 있다
위의 예시들을 plus라는 같은 이름의 메소드로 묶어 정의했다
이러한 경우를 메소드 오버로딩이라고 한다
사용하는 방법은 간단하다
다른 파일로 만들어 메소드를 만든 클래스로 생성자를 호출한 뒤
변수.메소드명 을 치면 만든 메소드 오버로딩 목록이 나오므로
그때 사용하고 싶은 메소드를 선택해 쓰면 된다
실습에서 메소드 복습!
반환값이 없는 메소드는 public 옆에 void를 적는다
파트6 클래스 다듬기:
생성자 오버로딩과 this
생성자도 메소드와 같다
매개변수의 수, 타입이 다를 때 구분하기 쉽게 하기 위해 같은 이름의 생성자를 여러 개 만들 수 있다
이전 강의에서 생성자를 하나라도 만들어두면 기본 생성자를 사용할 수 없다고 했지만
두 번째 선언한 생성자처럼 비게 만들면 기본 생성자와 같은 역할을 한다
기본 생성자에서 name과 number값을 초기하고 싶으면 빨간색으로 표시한 부분처럼 적으면 되지만
그러면 아래 있는 생성자(this.name, this.number)와 중복이 되므로
파란색 상자처럼 this( );로 자신의 생성자를 호출해 기본생성자 사용시원하는 값으로 초기화할 수 있다
this를 사용함으로써 코드의 중복을 막는다
실습에서도 this()로 생성자를 호출하여 만들도록 한다
파트6 클래스 다듬기:
패키지
파일을 종류별로 구분하고 폴더에 정리하는 것처럼
관련있는 클래스들끼리 모아 정리하는데, 이때 자바에서 폴더와 같은 개념이 패키지다
보통 패키지 이름은 도메인 이름을 거꾸로 적고 그 뒤 프로젝트 이름을 붙인다
com.프로젝트이름 같은 식이다
다만 숫자는 넣을 수 없어서 영어로 번역해 쓴다
이렇게 이클립스 안에서 패키지를 만들면 저장된 폴더에는 com 폴더 안 프로젝트이름 폴더 안 java 파일이 생긴다
다른 패키지에 있는 클래스를 불러오기 위해서는
import를 사용한다
com.eightcruz.first 패키지에 있는 Hello 클래스를 first 패키지의 HelloExam에서 사용하기 위해
Helloexam에서 컨트롤 + 쉬프트 + o 를 누르면 빨간색으로 표시한 import가 뜬다
import 옆에 마지막 클래스 이름(예시에서 Hello)에는 *를 넣으면 그 패키지에 있는 모든 클래스를 사용한다는 뜻이다
오.. 드디어 * 등장
아직도 용어들이 헷갈리지만 진도 나가면서 적응 중이다
복습 꾸준히 해야 정신 차릴 수 있을 듯 오늘도 복습하다가 힘들었다..
'자바' 카테고리의 다른 글
코딩공부 25일차: 프로그래머스 자바 입문 - 8. 인터페이스와 다른 형식의 클래스(1) (0) | 2022.08.26 |
---|---|
코딩공부 24일차: 프로그래머스 자바 입문 - 7. 상속 (0) | 2022.08.24 |
코딩공부 22일차: 프로그래머스 자바 입문 - 5. 클래스와 객체 (0) | 2022.08.22 |
코딩공부 21일차: 프로그래머스 자바 입문 - 4. 배열 (0) | 2022.08.21 |
코딩공부 20일차-2: 프로그래머스 자바 입문 - 3. 제어문 (0) | 2022.08.20 |