지난 포스트에서 공부한 객체지향 프로그래밍을 이해하기 위해 간단한 코드를 짜보도록 하겠습니다.
지난 포스트
OOP 기초
적절한 이름의 Java Project를 만들고 src 폴더 안에서 'oop기초'라는 이름의 Package를 만들어주고,
그 안에 'Main'과 'Person'이라는 두개의 클래스를 만들어줍니다.
클래스 명의 첫 글자는 무조건 대문자로 해주세요.
package oop기초;
public class Person {
// 클래스 == 설계도면 == 객체를 생성하기 전 우리가 직접 설계하는 도면
// 1. Field(데이터, 속성)
String name;
char gender;
int age;
// 2. Method(로직, 기능, 행동)
// 숨쉬기 기능
public void breathe() {
System.out.println("숨을 쉰다.");
}
// 말하기 기능
public String talk() {
return "블라블라";
}
}
위의 소스 코드는 PC에서 드래그 후,
ctrl+x로 잘라내서 다른 곳으로 붙여넣기가 가능합니다.
ctrl+c(복사)는 불가능합니다.
먼저 Person 클래스에 들어갈 코드입니다.
지난 포스트에서 객체지향 프로그래밍에는 클래스와 오브젝트가 있다고 했습니다.
Person 클래스가 설계 도면에 해당하는 클래스입니다.
클래스에서는 main 메소드가 없습니다.
public class Person { } 내에서 코드를 작성해주세요.
지난 포스트에서 공부한 것처럼 클래스 내에는 필드와 메소드로 섹션이 나뉘어 있습니다.
그리고 이 클래스는 말 그대로 설계 도명이기 때문에 저장을 하고 실행을 해봐도 콘솔에서 아무것도 출력되지 않습니다.
출력이 될 클래스는 Main 클래스 파일입니다.
package oop기초;
public class Main {
public static void main(String[] args) {
// 실행되는 공간
// 1. 설계도면을 가지고 객체 생성
Person mystee = new Person(); // new -> 레퍼런스 변수 생성 키워드
System.out.println(mystee); // mystee -> 주소값을 가지고 있는 레퍼런스 변수
mystee.breathe();
System.out.println(mystee.name);
mystee.name = "미스티";
System.out.println(mystee.name);
// 성별, 나이 채워서 출력하기~
mystee.gender = '男';
mystee.age = 3;
System.out.println(mystee.gender);
System.out.println(mystee.age);
// 동일한 설계도면을 가지고 여러개의 객체생성 가능하다.
// Person 이땡땡이라는 이름을 가진 객체를 만들어주세요.
// name - 이땡땡
// age - 20
// gender - 남
// 출력!
Person teacher = new Person();
teacher.name = "이땡땡";
teacher.age = 20;
teacher.gender = '男';
System.out.println(teacher.name);
System.out.println(teacher.age);
System.out.println(teacher.gender);
}
}
위의 소스 코드는 PC에서 드래그 후,
ctrl+x로 잘라내서 다른 곳으로 붙여넣기가 가능합니다.
ctrl+c(복사)는 불가능합니다.
그리고 Main 클래스 안에는 이렇게 코드를 넣어봤습니다.
그리고 실행을 하면 아래와 같이 출력이 됩니다.
Person mystee = new Person(); 이라는 코드에서 new 라는 키워드는 익숙하실 겁니다.
스캐너나 랜덤을 쓸 때에도 사용한 적이 있었죠.
이 new라는 것은 레퍼런스 변수 생성 키워드입니다.
그다음 줄에 바로 System.out.println(mystee); 라고 출력을 해보면,
oop기초.Person@4517d9a3 라고 주소 값이 뜹니다.
그다음 줄의 mystee.breathe(); 라는 코드로 인해서 설계 도면에 미리 써놓은 breathe() 메소드 안의
System.out.println("숨을 쉰다."); 라는 출력문이 출력이 됩니다.
그다음에 System.out.println(mystee.name); 이라고 mystee의 이름의 출력을 시도해보지만,
이름을 정해준 적이 없기 때문에 null 값이 출력이 됩니다.
mystee.name = "미스티";
System.out.println(mystee.name);
이렇게 이름을 정해주고 나서 그다음 줄에 출력을 시도해야 정상적으로 이름이 출력이 되는 것을 확인할 수가 있습니다.
다음 포스트
이 글이 도움이 됐다면 하단의 ♡ 공감 버튼을 꾹 눌러서
빨간 하트♥로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS에 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.
'그 외 프로그래밍 언어 > Java' 카테고리의 다른 글
자바, 생성자 (constructor) 빠르게 만드는 법 (0) | 2021.12.13 |
---|---|
자바, 저금통 만들기 (feat. this와 private, 그리고 생성자) (0) | 2021.12.13 |
자바, 객체지향 프로그래밍 (OOP) (0) | 2021.12.12 |
자바, 메소드 오버로딩 (중복정의) (0) | 2021.12.11 |
자바, 제곱 값 구하는 메소드 만들기 (0) | 2021.12.11 |
댓글