1. 클래스의 개념과 사용법
Java에서 클래스(Class) 는 객체를 생성하기 위한 틀(템플릿)이며, 객체의 속성(변수)과 동작(메서드)을 정의한다.
📌 클래스 선언과 사용 예제
// 클래스 정의
class Car {
String brand;
int speed;
void drive() {
System.out.println(brand + "가 " + speed + "km/h로 달립니다.");
}
}
// 클래스 사용
public class Main {
public static void main(String[] args) {
Car myCar = new Car(); // 객체 생성
myCar.brand = "Hyundai";
myCar.speed = 120;
myCar.drive(); // 메서드 호출
}
}
📌 Car 클래스는 속성(brand, speed)과 동작(drive 메서드)을 포함하고 있으며, Main 클래스에서 객체를 생성하여 사용한다.
2. 클래스와 메인 메서드의 관계
- Java 프로그램의 실행 진입점(entry point)은 main() 메서드이다.
- 클래스는 main() 메서드가 없어도 독립적으로 존재할 수 있지만, 실제 실행은 main()에서 시작된다.
- main() 메서드는 객체를 생성하고 클래스의 메서드를 호출하는 역할을 한다.
class Person {
String name;
void sayHello() {
System.out.println("안녕하세요, 저는 " + name + "입니다.");
}
}
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.name = "철수";
p.sayHello();
}
}
📌 Person 클래스는 sayHello() 메서드를 갖고 있으며, Main 클래스의 main()에서 객체를 생성하고 사용한다.
3. public 키워드를 사용해야 하는 이유
📌 클래스에서 public 사용
- public 클래스는 다른 패키지에서도 접근 가능하다.
- Java에서 하나의 .java 파일에는 반드시 하나의 public 클래스만 포함되어야 한다.
- public이 없는 클래스는 같은 패키지 내에서만 접근 가능하다.
public class Animal {
void makeSound() {
System.out.println("동물이 소리를 냅니다.");
}
}
📌 public이 붙으면 다른 패키지에서도 Animal 클래스를 사용할 수 있다.
📌 메서드에서 public 사용
- 클래스 외부에서 접근 가능하게 하려면 메서드에 public을 붙여야 한다.
- 만약 public이 없다면 같은 패키지 내에서만 접근 가능하다.
class Dog {
public void bark() {
System.out.println("멍멍!");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.bark(); // 정상적으로 호출 가능
}
}
📌 bark() 메서드가 public이므로 Main 클래스에서 호출 가능하다.
4. 상속 (Inheritance) 사용법
Java에서 상속(Inheritance) 은 기존 클래스를 확장하여 새로운 클래스를 만드는 기능이다.
📌 Java에서 상속 사용 방법
- extends 키워드를 사용하여 상속을 구현할 수 있다.
- 부모 클래스의 멤버 변수와 메서드를 자식 클래스에서 그대로 사용할 수 있음.
class Animal {
String name;
void eat() {
System.out.println(name + "가 먹고 있습니다.");
}
}
class Dog extends Animal {
void bark() {
System.out.println("멍멍!");
}
}
public class Main {
public static void main(String[] args) {
Dog myDog = new Dog();
myDog.name = "바둑이";
myDog.eat(); // 부모 클래스 메서드 사용
myDog.bark(); // 자식 클래스 메서드 사용
}
}
📌 Dog 클래스가 Animal 클래스를 상속하여 eat() 메서드를 사용 가능.
📌 C++과 Java의 상속 차이점
구분C++Java
상속 키워드 | : (콜론) 사용 | extends 키워드 사용 |
다중 상속 | ✅ 지원됨 | ❌ 지원되지 않음 (인터페이스 사용) |
기본 접근 제한자 | private | package-private |
📌 Java는 다중 상속을 지원하지 않으며, 인터페이스(interface)를 사용하여 유사한 기능을 구현한다.
5. 패키지와 클래스의 관계
📌 패키지란?
- Java에서 패키지(Package) 는 클래스들을 그룹화하여 관리하는 기능이다.
- 같은 패키지 내의 클래스들은 서로 쉽게 접근할 수 있다.
package mypackage;
public class MyClass {
public void show() {
System.out.println("MyClass 실행!");
}
}
📌 mypackage라는 패키지 안에 MyClass를 정의하여 관리할 수 있다.
📌 import를 통한 클래스 사용
import mypackage.MyClass;
public class Main {
public static void main(String[] args) {
MyClass obj = new MyClass();
obj.show();
}
}
📌 import를 사용하면 다른 패키지에 있는 클래스를 쉽게 불러와 사용할 수 있다.
6. 정리
- 클래스는 객체의 속성과 동작을 정의하는 틀이다.
- main()** 메서드는 프로그램 실행의 시작점이며, 클래스의 객체를 생성하고 메서드를 호출할 수 있다.**
- **public**을 사용하면 클래스와 메서드를 외부에서 접근 가능하게 만들 수 있다.
- 클래스 내부의 메서드는 멤버 변수를 조작하며 동작을 정의한다.
- **패키지는 클래스를 그룹화하여 관리하며, ****import**를 통해 다른 패키지의 클래스를 사용할 수 있다.
- **Java의 기본 접근 제한자는 ****package-private**이며, 같은 패키지 내에서만 접근 가능하다.
- Java는 extends 키워드를 사용하여 상속을 구현하며, 다중 상속은 지원하지 않는다.
'공부 > JAVA' 카테고리의 다른 글
자바의 가비지 컬렉터 (Garbage Collector, GC) (0) | 2025.03.07 |
---|---|
자바의 변수와 메서드(함수) (0) | 2025.03.07 |
Java의 입출력 (1) | 2025.03.05 |
자바의 시작 - 프로그램 셋팅 및 헬로우 월드 (0) | 2025.03.05 |