반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

[JAVA] Java 객체지향프로그래밍 (클래스) 본문

。*:・゚☆・゚schedule・゚*:・゚★・:*:・☆ *:・゚★/활용해본 코드 적용 예시 (◍•ᴗ•◍)❤

[JAVA] Java 객체지향프로그래밍 (클래스)

yeonee 여니 2023. 10. 5. 18:54
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

클래스

클래스는 객체 지향 프로그래밍에 있어서 가장 기본이 되는 것입니다. 클래스를 이용하여 현실 세계의 특정한 물건을 지칭할 수 있습니다. 가장 대표적으로 많이 사용되는 것이 Node클래스입니다. 이는 하나의 장소나 위치를 의미할 수도 있으며 자료구조에서 말하는 이전 탐색 트리의 하나의 서브 트리가 될 수도 있습니다. 또한 개발 프로젝트에서는 종종 Student클래스와 같이 "하나의 처리할 데이터 단위를 명시"하는데 사용이 됩니다.

 

💕공부파일 - Git 주소

자세한 코드 내용은 위의 git 주소를 확인해주세요.

 

<Main 클래스>

package Class;

public class Main {

	public static void main(String[] args) {

		// 해당 코드가 실행되면 Node.java의 생성자가 실행됨
		Node one = new Node(10, 20);
		Node two = new Node(30, 40);
		
		// one이라는 인스턴스를 실행(Node생성자 실행)하여, getCenter메소드가 two(Node other)라는 값을 받아서 
		// 해당 getCenter메소드를 실행해서 one, two의 정중앙값을 구한 것이 result(one,two의 정중앙 x,y좌표값)에 담긴다. 
		Node result = one.getCenter(two);
		System.out.println("x : " + result.getX() + ", y : " + result.getY());
	}

}

 

<Node클래스>

package Class;

public class Node {
	// 좌표 x, y 변수
	// 변수에 직접 접근할 수 없도록 private 접근제한자 사용(기본적인 보안)
	private int x;
	private int y;
	
	// 변수를 공동으로 쓸 수 있게 함수생성
	public int getX() {
		return x;
	}
	
	// 변수의 값을 바꾸는 함수생성
	// 자신(this)을 다른 값으로 받아주겠다.
	public void setX() {
		this.x = x;
	}
	
	public int getY() {
		return y;
	}
	
	public void setY() {
		this.y = y;
	}
	
	// 생성자 (class와 동일한 이름을 가짐)
	// 고유한 변수 x, y의 속성을 초기화 함
	public Node(int x, int y) {
		this.x = x;
		this.y = y;
	}
	
	public Node getCenter(Node other) {
		// Node other이라는 다른 좌표를 매개변수로 줌
		// 자신 좌표의 값 + 다른 좌표의 값 / 2 => 정중앙의 좌표 값 식을 만들어줌
		return new Node((this.x + other.getX()) / 2, (this.y + other.getY() / 2));
	}
}

해당 Node 클래스에 내가 사용할 변수를 private 접근제한자(기본적인 보안)를 사용하여 변수를 선언해줍니다.
이제 내가 만든 변수에는 사용자가 직접 접근할 수 없으며, 선언된 변수를 사용하려면 public 접근제한자를 사용하여 get함수를 생성해줍니다. 그리고 선언된 변수의 값을 바꾸어서 사용할 수 있는 set함수도 생성해줍니다. 여기서 this란 자기 자신이며 this.(변수) = (변수);는 자신(this)를 다른 값으로 받아주겠다는 의미입니다. (즉, 멤버 변수와 같은 이름을 가지겠다.)
이제 생성자 함수를 만들어줍니다. class와 동일한 이름을 가진 것이 생성자 함수의 특징입니다. 생성자 함수(Node메소드)는 가장 처음 선언했던 고유한 변수 x, y의 속성을 초기화 해줍니다. Node getCenter이라는 메소드는 다른 좌표인 Node other이란 매개변수로 받아 '(자신 좌표의 값 + 다른 좌표의 값) / 2' 식으로 x, y 좌표의 중앙값을  구해줍니다.

Main클래스에서 one와 two라는 인스턴스를 만들어줍니다. 두 인스턴스에는 매개변수로 각각 다른 x, y 좌표값을 넣어줍니다. 이제 main메소드를 실행시키면, one이라는 인스턴스를 실행하여 Node생성자 함수가 실행됩니다. 그리고 생성자 함수로 인해 one인스턴스의 객체가 생성되고 객체는 초기화됩니다. 그 다음 getCenter메소드가 two(즉, getCenter의 매개변수가 됨)인스턴스 값을 받아서, 해당 getCenter메소드를 실행시키기고 one, two의 x, y 좌표의 중앙값을 계산한 결과값을 result에 담아주게 됩니다. 마지막 출력구문을 통해 x, y 각각의 결과값을 도출해냅니다.

 

+ 참고 사이트 

더보기

https://www.youtube.com/watch?v=4idO8VOr17o&list=PLRx0vPvlEmdBjfCADjCc41aD4G0bmdl4R&index=15

 

개인 공부를 위해 작성하였으며 틀린 점이 있다면 언제든지 글 남겨주시기 바랍니다 :)

728x90
반응형
LIST