본문으로 바로가기

[Java]객체 생성과 필드 값 변경

category Java 2022. 2. 14. 21:26
02 객체지향 프로그래밍
100%
객체 생성과 필드값 변경

 

실습 내용

객체 생성과 필드 값 변경

클래스 코드 예

클래스 다이어그램을 통해 코드를 완성하였다면, 이제 객체를 만들 수 있다.

/* Dog(개) 클래스 예 */
class Dog {
/* 필드 영역 */
String name; // 이름
double weight; // 무게

/* 메소드 영역 */
void bark() {
System.out.println("멍멍!");
}
}

객체 만들기

위 Dog 클래스의 객체(인스턴스)를 만드는 코드는 아래와 같다.

// Dog 객체를 생성
new Dog();

일반적으로는 만든 객체를 다시 사용키 위해, 다음과 같이 변수로 이름을 붙여준다.

// 객체 생성 후, dog1 변수에 연결
Dog dog1 = new Dog();

// 비교: 일반 변수
int score = 86;

즉 Dog 객체를 사용하기 위해 객체를 변수화 하기 위해 Dog객체를 dog1이라는 변수에 대입한다.

이렇게 하면 만들어진 객체에 dog1 이라는 이름으로 접근 할 수 있게 된다.

이는 마치,  점수 86점을 다시 사용하기 위해서 int 타입의 변수 score 에 저장하는 것과 마찬가지 원리이다.  

 

닷 연산자?

생성된 객체는 연결된 변수에 닷(.) 연산을 함으로써, 접근할 수 있다.

그래서 객체의 필드를 바꿔주거나 가져오거나 할 수 있게 된다.

// dog1 변수에 연결된 객체에 접근, name 변경.
dog1.name = "멍무이";

// dog1 변수에 연결된 객체에 접근, weight 변경.
dog1.weight = 4.27;

// 필드 값 출력
System.out.printf("이름: %s\n", dog1.name);
System.out.printf("무게: %.2fkg\n", dog1.weight);

dog1이라는 변수를 통해 Dog 객체에 접근 한 다음에 해당 객체의 필드name에 "멍무이"라는 값을 넣어준다.

dog1이라는 변수를 통해 Dog 객체에 접근 한 다음에 해당 객체의 필드weight에 "4.27"이라는 값을 넣어준다.

 

따라서 이름과 무게를 출력할 때에도 dog1. name

dog1.weight와 같은 방식으로 객체의 필드를 출력할 수 있다.

 

문제

네로는 3살 된 페르시안 고양이다. 주어진 코드를 통해 이를 출력하려 한다. 하지만 현재 결과는 아래와 같다.

  1. 이름: null
  2. 품종: null
  3. 나이: 0

객체의 필드 값을 변경하여, 출력 예와 같은 결과를 얻으시오.

출력 예

  1. 이름: 네로
  2. 품종: 페르시안
  3. 나이: 3

풀이

더보기
/* CatTest 클래스 */
public class CatTest {
  public static void main(String[] args) {
    // Cat 객체 생성
    Cat c = new Cat();
    
    /* 1. 객체의 필드 값을 변경하시오. */
		c.name = "네로";
		c.breeds = "페르시안";
		c.age = 3;
		
    
    // Dog 객체 필드값 출력
    System.out.printf("이름: %s\n", c.name);
    System.out.printf("품종: %s\n", c.breeds);
    System.out.printf("나이: %s\n", c.age);
  }
}

/* Cat 클래스 */
class Cat {
  String name;   // 이름
  String breeds; // 품종
  int age;       // 나이

  void claw() {
    System.out.println("할퀴기!!");
  }
  
  void meow() {
    System.out.println("야옹~");
  }
}

c라는 이름을 가지고 객체를 재사용해 필드 값을 넣어 주었다.

 

구름에듀-그림으로 배우는 자바

'Java' 카테고리의 다른 글

[Java] 인스턴스 메소드 호출  (0) 2022.02.16
[Java]또 다른 객체 만들기  (0) 2022.02.15
[Java]클래스 구현하기  (0) 2022.02.14
[Java]클래스와 객체  (0) 2022.02.14
[Java]문자열 출력  (0) 2022.02.14

코딩 공부하는 블로그
블로그 이미지 서하현 님의 블로그
VISITOR 오늘 / 전체