본문 바로가기
그 외 프로그래밍 언어/Java

자바, 간단한 객체지향 프로그래밍을 해봅시다.

by Dreaming Coder 2021. 12. 12. 17:14

 


 

지난 포스트에서 공부한 객체지향 프로그래밍을 이해하기 위해 간단한 코드를 짜보도록 하겠습니다.

 

 

 

지난 포스트

 

자바, 객체지향 프로그래밍 (OOP)

갈수록 점점 더 어려워집니다. 이번에는 메소드보다 더 큰 벽인 객체지향 프로그래밍(Object Oriented Programming)에 대해서 배워보겠습니다. 지난 포스트 자바, 메소드 오버로딩 (중복정의) 이번에는

gogogameboy.tistory.com

 

 

 

OOP 기초

 

적절한 이름의 Java Project를 만들고 src 폴더 안에서 'oop기초'라는 이름의 Package를 만들어주고,

그 안에 'Main'과 'Person'이라는 두개의 클래스를 만들어줍니다.

클래스 명의 첫 글자는 무조건 대문자로 해주세요.

 

 

 

 

자바 이클립스, 새 프로젝트 만들기

이제 이클립스로 새 프로젝트를 만들어 보겠습니다. 지난 포스트 자바 이클립스, 설치 후 초기 환경 설정 강력한 자바 개발도구인 이클립스 설치 직후 무엇을 해야 하는지에 대한 글입니다. 정

gogogameboy.tistory.com

 

자바 이클립스, 클래스 만들기

자바 개발도구인 이클립스에서 프로젝트 안에 새 클래스를 만드는 법을 배워보도록 하겠습니다. 지난 포스트 이클립스, 워크스페이스 Workspace 폴더 변경하는 방법 이번에는 처음에 지정해놓은

gogogameboy.tistory.com

 

 

 

 

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);

이렇게 이름을 정해주고 나서 그다음 줄에 출력을 시도해야 정상적으로 이름이 출력이 되는 것을 확인할 수가 있습니다.

 

 

 

 

 

 

다음 포스트

 

자바, 저금통 만들기 (feat. this와 private, 그리고 생성자)

계속해서 객체지향 프로그래밍을 해보겠습니다. 그러면서 그동안 무슨 뜻인지도 몰랐지만 일단 몇 번 써봤었던 private라는 접근 제한자에 대해서 알아보겠습니다. 덤으로 this라는 키워드와 '생

gogogameboy.tistory.com

 

 

 


이 글이 도움이 됐다면 하단의 공감 버튼을 꾹 눌러서
빨간 하트로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.

 


 


댓글