웹사이트 검색

Java 프로그래밍 및 캡슐화의 객체 지향 접근 방식 - 5부


이 시리즈가 시작된 이후(그리고 그 이전에도) 여러분은 Java가 객체 지향 프로그래밍 언어라는 것을 알고 계셨습니다. 객체 지향 프로그래밍 언어는 메소드의 속성으로 데이터를 포함하는 "객체" 개념을 기반으로 합니다.

Java의 모든 객체에는 인스턴스 변수와 메소드로 표현되는 상태와 동작이 있습니다. 클래스의 각 인스턴스는 해당 인스턴스 변수에 대해 고유한 값을 가질 수 있습니다.

예를 들어,

머신 A는 Debian으로 구동되고 8GB RAM을 가질 수 있으며 머신 B는 4GB RAM으로 Gentoo를 설치할 수 있습니다. 또한 Gentoo가 설치된 기계를 관리하려면 더 많은 지식, 즉 상태에 따라 작동하는 동작이 필요하다는 것도 분명합니다. 여기서 방법은 인스턴스 변수 값을 사용하는 것입니다.

JVM은 클래스를 구문 분석할 때 해당 종류의 객체를 만듭니다. 클래스를 작성할 때 실제로는 클래스에 객체가 무엇을 알아야 하고 어떻게 작동해야 하는지 알려주는 컴파일러처럼 행동합니다. 특정 유형의 모든 객체는 동일한 인스턴스 변수에 대해 서로 다른 값을 가질 수 있습니다.

클래스의 모든 인스턴스에는 동일한 메서드가 있지만 모두 다르게 동작할 수도 있습니다.

OS 클래스에는 OS 이름, OS 유형, OS 카테고리라는 3개의 인스턴스 변수가 있습니다.

OS
OS_Name
OS_Type
OS_Category
Boot()
Reboot()
scan()

Boot() 메서드는 해당 인스턴스의 OS 이름으로 표시되는 하나의 OS를 부팅합니다. 따라서 한 인스턴스에서 boot()하면 Debian으로 부팅되고 다른 인스턴스에서는 Gentoo로 부팅됩니다. 메소드 코드는 두 경우 모두 동일하게 유지됩니다.

Void Boot() 
	{
	bootloader.bootos(OS_Name);
	}

프로그램이 main() 메서드 바로 다음에 실행되기 시작한다는 것을 이미 알고 있습니다. 메소드에 값을 전달할 수 있습니다.

예를 들어 부팅 시 시작할 서비스를 다음과 같이 OS에 알려주고 싶습니다.

You are already aware that the program starts to execute just after the main() method. You can pass values into you method. For example you would like to tell you OS what services to start at boot as:
OS.services(apache2);

메소드에 전달하는 것을 인수라고 합니다. 메소드 내에서 유형과 이름이 있는 변수를 사용할 수 있습니다. 메소드가 매개변수를 사용하는 경우 매개변수와 함께 값을 전달하는 것이 중요합니다.

OS deb = debian();
deb.reboot(600);

여기서 OS의 재부팅 메소드는 값 600(600초 후 시스템 재부팅)을 메소드에 대한 인수로 전달합니다. 지금까지 우리는 메서드가 항상 void를 반환하는 것을 보았습니다. 이는 간단히 다음과 같이 아무것도 반환하지 않는다는 의미입니다.

void main()
	{
	…
	…
	}

그러나 컴파일러에게 원하는 것을 정확하게 얻으라고 요청할 수 있으며 컴파일러는 잘못된 유형을 반환하지 않습니다. 당신은 단순히 다음과 같이 할 수 있습니다 :

int Integer()
	{
	…
	…
	return 70;
	}

메서드에 둘 이상의 값을 보낼 수 있습니다. 두 개의 매개변수 메서드를 호출하고 이를 인수로 보내면 됩니다. 참고 변수 유형과 매개변수 유형은 항상 일치해야 합니다.

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}
인스턴스 변수 선언 및 초기화

1. 초기화할 값을 모를 때.

int a;
float b;
string c;

2. 초기화할 값을 알면.

int a = 12;
float b = 11.23;
string c = tecmint;

참고: 인스턴스 변수는 종종 지역 변수와 혼동되지만 구별하기 위해 둘 사이에는 매우 가는 선이 있습니다.

3. 인스턴스 변수는 메소드 내에서 선언되는 지역 변수와 달리 클래스 내에서 선언됩니다.

4. 인스턴스 변수와 달리 지역 변수는 사용하기 전에 초기화해야 합니다. 지역 변수가 초기화되기 전에 사용하면 컴파일러에서 오류를 보고합니다.

캡슐화

캡슐화에 대해 들어보셨을 것입니다. 이는 데이터와 기능을 단일 구성 요소로 묶는 것을 가능하게 하는 대부분의 객체 지향 프로그래밍 언어의 기능입니다. 캡슐화는 클래스별로 지원되며 개체 주위에 벽을 만들어 코드가 우발적인 손상으로부터 보호되고 개체의 속성과 메소드를 선택적으로 숨깁니다.

필요한 경우 올바른 튜토리얼에서 캡슐화를 자세히 확장할 것입니다. 지금은 캡슐화가 무엇인지 아는 것만으로도 충분합니다. 그것은 무엇을 하는가? 어떻게 되나요?

지금은 여기까지입니다. 제가 작업하는 동안 이 Java 시리즈 "Java의 클래스 및 객체, Java에서 첫 번째 객체 만들기"의 다음 부분을 계속 연결하세요. 시리즈와 게시물이 마음에 드신다면 피드백을 통해 알려주세요.