반응형

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제7장 객체지향개념 2 - 4. 제어자(modifier)

4. 제어자(Modifier) 4.1 제어자란? 제어자(Modifier)는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 그리고 제어자의 종류는 크게 접근제어자와 그 외의 제어자로 나눌 수 있다. 접근제어자 - public, protected, default, private 그 외 - static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근제어자는 한번에 네 가지 중 하나만 선택해서 사용할 수 있다. 즉, 하나의 대상에 대해서 public과 private을 함께..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제7장 객체지향개념 2 - 3. package와 import

3. package와 import 3.1 패키지(package) 패키지란, 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함 시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 나누어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 또한 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 지금까지는 단순히 클래스명으로만 클래스를 구분 했지만 클래스의 실제 이름(full name)은 패키지명을 포함한 것이다. 예를 들면, String클래스의 패키지명을 포함한 이름은 java.lang.String이다. 즉, java.lang패키지에 속한 String..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제7장 객체지향개념 2 - 2. 오버라이딩(Overriding)

2. 오버라이딩(Overriding) 2.1 오버라이딩이란? 조상클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손클래스 자신에 맞게 변경해야하는 경우가 많다. 이럴 때 조상의 메서드를 오버라이딩한다. [참고]override의 사전적 의미는 '~위에 덮어쓰다(overwrite).' 또는 '~에 우선하다.'이다. 2차원 좌표계의 한 점을 표현하기 위한 Point클래스가 있을 때, 이를 조상으로 하는 Point3D클래스, 3차원 좌표계의 한 점을 표현하기 위한 클래스를 다음과 같이 새로 작성하였다고 하자. class Point { int x; int y; String getLocation() { return "x :" + x + ", ..

2014.07.03 게시됨

[Java의 정석]제7장 객체지향개념 2 - 1. 상속(Inheritance) 포스팅 썸네일 이미지

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제7장 객체지향개념 2 - 1. 상속(Inheritance)

1. 상속(Inheritance) 1.1 상속의 정의와 장점 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면, 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 자바에서 상속을 구현하는 방법은 아주 간단하다. 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써 주기만 하면 된다. 예를 들어 새로 작성하려는 클래스의 이름이 Child이고 상속받고자 하는 기존 클래스의 이름이 Parent라면 다음과 같이 ..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제6장 객체지향개념 1 - 6. 변수의 초기화(초기화블럭)

6. 변수의 초기화 6.1 변수의 초기화 변수를 선언하고 처음으로 값을 저장하는 것을 "변수의 초기화"라고 한다. 변수의 초기화는 경우에 따라서 필수적이기도 하고 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화 하는 것이 바람직하다. 멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화를 하지 않고 사용해도 되지만 지역변수는 사용하기 전에 반드시 초기화를 해야 한다. class InitTest { int x; int y = x; void method1() { int i; int j = i; // 컴파일 에러발생 : 지역변수를 초기화하지 않고 사용했음. } } 위의 코드에서 x, y는 멤버변수이고, i, j는 지역변수이다. 그 중 x와 i..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제6장 객체지향개념 1 - 5. 생성자(Constructor)

5. 생성자(Constructor) 5.1 생성자란 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 따라서 인스턴스변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. [참고]인스턴스 초기화란, 인스턴스변수들을 초기화하는 것을 뜻한다. 생성자 역시 매서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. 그렇다고 해서 생성자 앞에 리턴값이 없음을 뜻하는 키워드 void를 사용하지는 않고, 단지 아무 것도 적지 않는다. 생성자의 조건은 다음과 같다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. [참고]생성자도 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 ..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제6장 객체지향개념 1 - 4. 메서드 오버로딩(Overloading)

4. 메서드 오버로딩(Method Overloading) 4.1 메서드 오버로딩이란? 메서드는 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 하지만, 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있도록 했다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩(Method Overloading) 또는 간단히 오버로딩(Overloading)이라 한다. 오버로딩(Overloading)의 사전적 의미는 '과적하다.' 즉, 많이 싣는 것을 뜻한다. 보통 하나의 메서드 이름에 하나의 기능만을 구현해야하는..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[보충]static의 사용법과 개념예

먼저 결론부터 간단히 정리하면 다음과 같습니다. 1.클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다. - 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 2. static이 붙은 멤버변수는 인스턴스를 생성하지 않아도 사용할 수 있다. - static이 붙은 멤버변수(클래스변수)는 클래스가 메모리에 올라갈때 이미 자동적으로 생성되기 때문이다. 3. static이 붙은 메서드(함수)에서는 인스턴스 변수를 사용할 수 없다. - static이 붙은 메서드는 인스턴스 생성 없이 호출가능한 반면, 인스턴스 변수는 인스턴스를 생성..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제6장 객체지향개념 1 - 3. 변수와 메서드

3. 변수와 메서드 3.1 선언위치에 따른 변수의 종류 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언된 위치'이므로 변수의 종류를 파악하기 위해서는 변수가 어느 영역에 선언되었는지를 확인하는 것이 중요하다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수이다. 아래의 그림에는 모두 3개의 int형 변수가 선언되어 있는데, iv와 cv는 클래스 영역에 선언되어있으므로 멤버변수이다. 그 중 cv는 키워드 static과 함께 선언되어 있으므로 클래스 변수이며, iv는 인스턴스변수이다. 그리고, lv는 메서드인 method() 내부에 선언되어 있으므로 지역변..

2014.07.03 게시됨

삶의 늪에 들어 가기 전/정리중(미정리)

[Java의 정석]제6장 객체지향개념 1 - 1.객체지향언어, 2.클래스와 객체

1. 객체지향언어 1.1 객체지향언어의 역사 요즘은 컴퓨터의 눈부신 발전으로 활용 폭이 넓고 다양해져서 컴퓨터가 사용되지 않는 분야가 없을 정도지만, 초창기에는 주로 과학실험이나 미사일 발사실험과 같은 모의실험(Simulation)을 목적으로 사용되었다. 이 시절의 과학자들은 모의실험을 위해 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하고자 노력하였으며, 이러한 노력은 객체지향이론을 탄생시켰다. 객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.'라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 듯한 가상세계를 구현하고 이 가상세계에서 모의실험을 함으로써 ..

2014.07.03 게시됨

반응형