[java] 상속 이행시



상 -상상해보곤한다.

속 -속박된 세상에서 벗어나 자유를 만끽하는 내모습을...

by 스피넬 | 2009/11/22 22:26 | 트랙백 | 덧글(1)

[java] 5장 상속 수업복습

상속이란 모듈의 재사용과 코드 간결성을 제공하는 특성을 말한다.
우리는 이번시간에 클래스 사이에 상속에 대한 학습을 해 보았다.
예를들어
class A{
    .....
}
class B{
    ....
}
이렇게 두개의 클래스가 존재한다고 할때,
A의 것을 B가 상속하기 위해서 extends라는 단어를 이용할 수 있었다.
extend란 연장하다,늘리다의 의미로서
class A{
    .....
}
class B extends A{
    ....
}
위와같이 사용되는 경우 클래스B는 클래스A를 상속했다(A의 것을 B가 상속) 즉 클래스B는 클래스A를 확장한다 라는 의미를
가진다.
여기서 A클래스를 상위클래스 또는 부모클래스라고 부르고 B클래스를 자녀클래스 또는 부모클래스라고 한다.
이와 같은경우 클래스가 상속되면 상위 클래스의 모든 요소들이 바로 하위클래스로 상속되게 되는 것이다.
그렇기 때문에 간결성을 갖게 되는것이다. 여기까지가 상속의 핵심부분이라 할 수 있겠다.


또한 상속과 관련하여 접근한정자에 대해서도 추가적으로 다루어 보았는데, 우리는 protected라는 접근한정자를 배웠다.
이는 같은 패키지내의 클래스와 같은 패키지는 아니더라도 상속된 클래스에서 사용가능한 것을 말한다.
전시간에 다루었던 public과 private를 와 함께 사용되고 있다.

또한 4장에서 다루었던 오버로딩(같은클래스내에 같은 이름의 생성자,메소드를 사용하는행위,단 매개변수의 개수와 타입은 달라야함 )과 오버라이딩에 대해 배웠다.

오버라이딩이란 상속관계에서 사용되는 것을 말하는데, 이는 상속관계의 클래스같에 같은 이름의 메소드를 정의하는 경우를
말한다. 이때 상위클래스의 메소드와 하위클래스의 메소드 이름 같아야하며 오버로딩과 달리 매개변수의 타입과 개수까지도 같아야한다는 것을 예제를 통해 확인해 볼 수 있었다.
또한 하위클래스에 의해 가려져있는 상위클래스의 멤버변수나 메소드의 접근을 원할경우 이루는 super를 이용하여
접근해 볼 수 있었다.

수업시간에 좀 더 빨리 이해하고 수업진행에 맞춰서 따라가기 위해서는 영타연습을 좀 더 해야할듯 싶다 ㅠㅠ
내스스로가 예제를 하나라도 확실히 해보고, 이해하고 넘어가는 것이 수업에 큰 도움이 되는듯 하기 때문이다. 



by 스피넬 | 2009/11/22 22:23 | 트랙백 | 덧글(1)

[java]수업복습

지난시간에 몸이 안좋아서 결석했기때문에 배운것은 없지만..
나름대로 아는것 위주로 정리해보았습니다...
전전시간에 블로그를 올리지 못했기때문에 전전시간 수업시간에 배운내용위주로 복습해서 올려보았습니다..ㅜ.ㅜ 
근데 요즘 자바가 너무 어려워요 ㅠ.ㅠ

4장에서는 클레스에 대한 개념들을 배웠다.
클레스는 일반적으로 멤버변수 생성자 메소드로 나눌 수 있다.

또한 멤버변수는
-객체변수
- 클레스변수
-종단 변수로 나눌수 있는데

이번시간에 중점적으로 다룬것은 바로 클래스 변수이다.
먼저 클래스변수는static을 사용하여 선언한다는게 포인트이다. 또한 클래스변수는 프로그램내에서 어느곳에서나
사용할 수 있는 전역변수이기도 하다. 그렇기 때문에 모든 객체들은 클래스 변수를 공유한다.
접근방법은 객체변수와 비슷한 원칙이다. 객체변수 일때는 객체이름.변수를 사용했지만
클레스변수의 경우 클레스이름.클레스변수로 접근이 가능하다.
멤버변수의 접근한정자로는 public과 private를 갖는다.
public은 전역변수와 비슷하다고 생각하면되고, private는 지역변수와 비슷한 개념이라고 생각하면? 쉽다.(맞나요=.=;)
public의 경우는 소속된 클래스가 접근 가능하면 항상 접근을 할 수 있으며, private는 소속된 클레스 내에서만 사용가능하다.

생성자는 객체가 생성될때 초기화 과정을 기술한 것이다. 생성자는 클래스의 이름과 같은 이름으로 선언하며, 한정자
private를 선언할땐 외부에서의 접근이 불가능 하다.
생성자오버로딩은 클레스에 하나이상의 생성자를 중첩적으로 사용하는 것을 말하는데. 여러개의 생성자 사용시 생성자이름은 동일하지만 매개변수의
타입과 개수는 달라야한다.
오버로딩의 예를 들어 보자면

class Box{
int apple;
int strawberry;
int grape;
 public Box() {                  // Box mybox1 = new Box()
 apple = 1;
 strawberry=2;
 grape=3;
 }
public Box(int a) {              //Box mybox2 =new Box(정수a)
apple= a;
strawberry=2;
grape=3;

public Box(int a, int s) {            //Box mybox3=new Box(정수a,정수s)
apple= a;
strawberry=s;
grape=3;
}
이렇듯 각자의 생성자는 다른 매개변수 값을 갖게 된다. 
매개변수의 개수는 같더라도 타입이 다른경우에는 같은 타입별로 써주면 된다.
여기까지는 확실히 이해가 되는데요......

this 예약어부터는 좀 많은 어려움이 있습니다..
솔직히 왜 써야하는지 어떨때 써야하는지가 의문입니다. 다른 생성자를 호출할때 사용한다고하는데,
꼭 this를 사용해야 하는건가요? 구체적으로 어떤경우에 사용되는지 잘 모르겠습니다...

by 스피넬 | 2009/11/15 22:55 | 트랙백 | 덧글(1)

오버로드사행시


오-오늘의 할일을 내일로 미루지않고

버-버릇처럼 체크하고

로-노력한 결과

드-드디어 결실을 맺었다



이렇게 해야할텐데요.......ㅠ.ㅠ
나태해지면 안되는데.......
자꾸 마음이 잡히질 않아요
날씨는 춥고... 감기에나 걸리고..
교수님도 감기 조심하세요!

by 스피넬 | 2009/11/15 21:15 | 트랙백 | 덧글(1)

[java] 한정자 삼행시



한 - 한없이 노력하고

정 - 정성을 다한다면

자 - 자기 스스로도 만족할만한 결과를 얻을 것이다.

by 스피넬 | 2009/11/09 00:25 | 트랙백 | 덧글(1)

◀ 이전 페이지          다음 페이지 ▶