24년 12월 2일 수업에서 애매했던 개념들을 다시 정리하고 학습하고자 기록한다.
1. 패키지
패키지는 클래스를 체계적으로 관리하기 위해 비슷한 성격의 클래스들을 모아놓은 디렉터리로, 클래스의 식별자 역할을 한다.
패키지가 다르면 클래스 이름이 동일하더라도 다른 클래스로 인식됨으로 주의한다.
형태
package 상위패키지.하위패키지.클래스
패키지 선언
클래스가 어떤 패키지에 속할지 선언하는 것으로, 패키지는 클래스의 일부이기에 함께 복사해줘야 한다.
패키지 선언은 소스 파일 최상단에 위치한다.
// sea.water 패키지에 Fish 클래스가 속해야 한다면, 다음과 같이 작성한다.
package sea.water;
public class Fish { ...
}
패키지 이름 작성 규칙
- 첫 문자는 영문 알파벳
- 특수문자 사용 불가(단 _, $를 제외)
- 되도록이면 package 명은 모두 소문자로, Class는 대문자로 시작해 구분짓는다.
- 문자, 숫자 혼합 가능
- 주로 한 단어 명사로 설정하되, 두 개의 단어 사용할 시 대문자로 구분한다. (카멜 표기법)
import 문
- 사용하고자 하는 클래스 혹은 인터페이스가 다른 패키지에 소속되어있을 때 사용한다.
- 패키지 선언과 클래스 선언 사이에 사용한다.
- 상위 패키지와 하위 패키지는 별도로 import 해야한다.
import 상위패키지.하위패키지.클래스;
import 상위패키지.하위패키지.*; // 해당 패키지에 소속된 모든 클래스 사용
2. 접근 제한자
접근 제한자는 클래스, 메소드, 변수 등에 대한 접근을 제어하는 키워드로, 4가지 접근 제한자가 있다.
- public : 어디서나 접근 가능
- protected : 같은 패키지 내 및 상속 받은 클래스에서 접근 가능
- defalut : 아무 제한자도 명시하지 않으면, 같은 패키지 내에서만 접근 가능
- private : 해당 클래스 내에서만 접근 가능
3. 클래스(class)
클래스는 객체의 속성(변수)과 동작(메소드)를 정의한다.
클래스 구성
1. 필드(field)
- 필드는 클래스 내에서 데이터를 저장하는 변수로, 객체가 가지고 있는 속성값을 나타낸다.
- 객체마다 개별적으로 존재하며, 객체가 생성될 때 메모리에 할당된다.
public class Car {
String color; // 필드: 자동차의 색상
int speed; // 필드: 자동차의 속도
}
2. 생성자(constructor)
- 객체가 생성될 때 자동으로 호출되는 특수한 메소드로, 객체를 초기화하는 역할을 함.
- 클래스 이름과 동일하며, 반환 타입이 없다.
- 크게 기본 생성자와 매개 변수가 있는 생성자가 있다.
public class MyClass {
private int Var;
// 기본 생성자
public MyClass() {
Var = 0;
}
// 매개변수가 있는 생성자
public MyClass(int value) {
Var= value;
}
}
3. 메소드(method)
- 객체가 수행할 수 있는 동작을 정의하는 함수이다.
- 클래스 내에서 변수, 로직 등을 조작할 수 있으며 매개변수와 반환 타입을 설정할 수 있다.
- 입력값을 매개변수로 받을 수 있으며, 이를 통해 다양한 동작 수행 가능.
- 반환값 설정 가능 (O/X)
- 반환값이 없을 경우 void로 정의함.
public class Car {
String color;
int speed;
// 자동차의 속도를 변경하는 메소드
public void acc(int increment) {
speed += increment;
}
// 자동차의 정보를 출력하는 메소드
public void displayInfo() {
System.out.println("Car color: " + color + ", Speed: " + speed);
}
}
추가 : 상속(inheritance)
public class Animal {
public void sound() {
System.out.println("Some sound");
}
}
public class Dog extends Animal {
public void sound() {
System.out.println("Bark");
}
}
'🏕 멋사 Java 백엔드 13기 > TIL' 카테고리의 다른 글
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 6일차 (2) | 2024.12.09 |
---|---|
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 4일차 (0) | 2024.12.05 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 3일차 (1) | 2024.12.04 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 2일차 (0) | 2024.12.03 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 1일차 (3) | 2024.12.02 |