자바는 객체지향 언어
Object Oriented Language
코드는 class
실제 사물을 나타내기 위한 것:
객체 또는 인스턴스
기본 생성자는 javac Car.java 하면.. 컴파일 할때 Car.class 안에 자동으로 코드가 생성된다.
클래스와 객체의 차이점?
클래스:
객체를 생성하기 위한 청사진.
클래스는 데이터의 구조, 기능을 정의.
추상적 개념. 메모리에 존재하지 않는다.
구성 요소: field 변수, method 함수, 생성자
객체:
클래스로부터 생성된 실체 instance.
객체는 클래스에서 정의된 구조, 기능을 실제로 구현.
작업을 수행.
메모리 상에 존재하며, 구체적 값을 가짐.
구성 요소: 클래스 멤버 변수, 클래스 method 사용 가능.
객체를 생성하기 위해 사용되는 예약어?
new
객체와 인스턴스의 차이?
public class Car {
private String color;
private String model;
public Car(String color, String model) {
this.color = color;
this.model = model;
}
public void displayDetails() {
System.out.println("Color: " + color + ", Model: " + model);
}
public static void main(String[] args) {
Car myCar = new Car("Red", "Toyota"); // 객체 생성
myCar.displayDetails(); // 객체 사용
}
}
객체라는 단어가 인스턴스보다 범위가 넓다.
객체:
class 를 구체화 시킨 것이 객체.
인스턴스:
Car 라는 class를 객체를 만들면 myCar라는 이름을 가진 인스턴스 생성.
객체의 메소드를 사용하려면, 객체이름?메소드이름 사이에 무엇을 넣어야 하는가?
.
메소드를 사용하기 위해서는 어떤 것을 만들어야 하나?
1. 객체를 만들어서 . 으로 접근해서 메서드를 사용한다.
2. 정적 클래스라면 .으로 접근해서 메서드를 사용한다.
- 인스턴스 메소드(instance method) 사용:
- 인스턴스 메소드는 클래스의 인스턴스를 생성해야 사용할 수 있는 메소드입니다.
public class Car {
private String color;
private String model;
// 생성자
public Car(String color, String model) {
this.color = color;
this.model = model;
}
// 인스턴스 메소드
public void displayDetails() {
System.out.println("Color: " + color + ", Model: " + model);
}
public static void main(String[] args) {
// Car 클래스의 객체 생성
Car myCar = new Car("Red", "Toyota");
// 인스턴스 메소드 호출
myCar.displayDetails(); // 출력: Color: Red, Model: Toyota
}
}
- 정적 메소드(static method) 사용:
- 정적 메소드는 클래스의 인스턴스를 생성하지 않고 클래스 이름을 통해 직접 호출할 수 있는 메소드입니다.
public class MathUtils {
// 정적 메소드
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 정적 메소드 호출
int sum = MathUtils.add(5, 3);
System.out.println("Sum: " + sum); // 출력: Sum: 8
}
}