본문 바로가기

컴퓨터공부/Java

[java 자바공부] Tv[] tvarr = { new Tv(), new Tv(), new Tv() };객체란?클래스 변수와 인스턴스 변수의 차이점메서드 종류는?

by Life & study 2023. 10. 28.
반응형

[java 자바공부] Tv[] tvarr = { new Tv(), new Tv(), new Tv() };
객체란?
클래스 변수와 인스턴스 변수의 차이점
메서드 종류는?

[java 자바공부] Tv[] tvarr = { new Tv(), new Tv(), new Tv() };

 

Tv[] tvarr = { new Tv(), new Tv(), new Tv() };

"Tv[] tvarr = { new Tv(), new Tv(), new Tv() };" 는 자바 언어에서 Tv 객체를 선언하고 초기화하는 방법입니다. 아래는 코드와 해당하는 텍스트 그림 및 설명입니다:

Tv[] tvarr = { new Tv(), new Tv(), new Tv() };

tvarr ──────────────────────┐
                            │
    ┌───────────────────┐   │   ┌───────────────────┐
    │   new Tv()        │   ├──▶│   new Tv()        │
    └───────────────────┘   │   └───────────────────┘
                            │
    ┌───────────────────┐   │   ┌───────────────────┐
    │   new Tv()        │   ├──▶│   new Tv()        │
    └───────────────────┘   │   └───────────────────┘
                            │
    ┌───────────────────┐   │   ┌───────────────────┐
    │   new Tv()        │   ├──▶│   new Tv()        │
    └───────────────────┘   │   └───────────────────┘
                            │

코드에서 "Tv[]"는 Tv 객체의 배열을 선언하는 부분입니다.
"tvarr"은 배열 변수의 이름입니다.
중괄호 "{ }" 안에는 "new Tv()"로 초기화된 Tv 객체들이 들어갑니다.
"new Tv()"는 Tv 클래스의 새로운 인스턴스를 생성하는 부분입니다.
위의 코드는 Tv 객체를 3개 생성하여 배열에 저장하는 예시입니다.
이 코드를 사용하면 Tv 객체의 배열을 생성하고 초기화할 수 있습니다. 배열의 각 요소에는 새로운 Tv 객체가 할당됩니다. 이렇게 생성된 배열은 나중에 필요한 작업에 활용할 수 있습니다

 

new Tv[3]; 은 참조변수 3개가 생성되는것이다.

Tv[] TvArr = new Tv[3];

TvArr[0] = new Tv();

에서 
TvArr[0] = new Tv();를 사용하지않으면

Tv[] TvArr = new Tv[3];의 배열을 사용하지않는것과
같다

그래서


Tv[] TvArr = new Tv[3];

TvArr[0] = new Tv();
한쌍으로 보고 사용해야된다.

 

 

[java 자바공부] 객체란 ? 필드를 묶어논 것이다

 

 

class Car {
    // 필드 (상태)
    String color;
    String model;
    int year;

    // 메소드 (행동)
    void drive() {
        System.out.println("The car is driving.");
    }
}

 

 

[java 자바공부] 클래스 영역은 선언문만 가능하다.

 


클래스 영역은 선언문만 가능하다.

메소드() { 메소드시작

}
메소드 끝

 

[java 자바공부] 클래스 변수와 인스턴스 변수의 차이점은?

 

클래스 변수는 static을 사용하여 

다른 클래스와 공유차원으로 사용되고,

 

인스턴스 변수는

그 클래스의 필드로 사용된다.

class Car {
    // 인스턴스 변수
    String model;

    // 클래스 변수
    static int totalCars;
}

 

 

클래스 내부에서 공유되는 자원의 역할

 

 

java
class Car {
    // 인스턴스 변수
    String model;

    // 클래스 변수
    static int totalCars;
}


이 클래스에서 'model'은 인스턴스 변수이고, 'totalCars'는 클래스 변수입니다. 이를 사용하는 방법은 다음과 같습니다.

java
Car car1 = new Car();
car1.model = "Sedan";
Car.totalCars++;

Car car2 = new Car();
car2.model = "SUV";
Car.totalCars++;


이를 그림으로 표현하면 다음과 같습니다:



클래스

    Car
  /    \
model  totalCars

객체 car1
    car1 = new Car();
  /    \
"Sedan"  1

객체 car2
    car2 = new Car();
  /   \
"SUV"   2


즉, 'model'은 각 'Car' 인스턴스마다 별도로 존재하는 반면, 'totalCars'는 모든 'Car' 인스턴스가 공유하는 변수입니다. 따라서 'model'의 값은 인스턴스마다 다르지만, 'totalCars'의 값은 모든 인스턴스에서 동일합니다.

 

 

결론,

 

클래스 필드와 공유자원을 공급한다

객체는 필드의 집합이다.

 

 

 

[java 자바공부]  자바를  카드로 비유하자면?

 

카드가 있다면,


객체적으로 분리되어 생각을 해야되는데

분리의 역활에서는

-공통적인 부분과


높이
카드

-개별적인 부분으로 나뉜다.

무늬
숫자



필드
(인스턴스 변수)


-클래스 구조로써

개별적인 부분은
필드값으로 놓고,

공독적인 부분은
static으로  공통된 값을 공유한다.

 

 

[java 자바공부] 메서드란 어떻게 쓰이고있나?

 

1.인스턴스 메서드: 이들은 객체의 인스턴스에 대해 동작하며, 객체 인스턴스를 통해 호출됩니다. 인스턴스 메서드는 클래스 내에서 선언되지만 'static' 키워드 없이 선언됩니다.

 

2.클래스 메서드: 이들은 클래스 자체에 대해 동작하며, 클래스 이름을 통해 호출됩니다. 클래스 메서드는 'static' 키워드를 사용하여 선언됩니다.

 

3.생성자: 이들은 객체가 생성될 때 호출되는 특별한 메서드입니다. 생성자의 이름은 클래스의 이름과 동일하며, 반환 타입이 없습니다.

 

class Car {
    String model;
    static int totalCars;

    // 생성자
    Car(String model) {
        this.model = model;
        totalCars++;
    }

    // 인스턴스 메서드
    void drive() {
        System.out.println(this.model + " is driving.");
    }

    // 클래스 메서드
    static int getTotalCars() {
        return totalCars;
    }
}

 

메서드는

 

한쌍) 초기상태를 지정하는 메소드 (생성자 = 초기값을 담당한다)

 

한쌍)  클래스메소드

 

 

댓글