**** Ch0605.java ****
package ch06;

//public은 자료 참조할수 있게 노출..
//private은 내부에서만 노출
import ch05.sub.*;

public class Ch0605
{
 public static void main(String[] args)
 {
  Car car = new Car("a","b");
  //car.name = "b";
 
  /*
   * 접근제어자 : 외부의 클래스에서 직접 접근할 수 있는
   * 권한을 부여하는 지시어로
   *
   * public은 외부에서 어떠한 상황이라도 모두
   * 접근이 가능하도록하는 지시어이다.
   * 계승시에도 public접근권한을 지정한 멤버변수, 멤버함수는
   * 하위 클래스에 자연스레 모든것이 계승된다.
   *
   * private는 해당클래스에만 멤버변수, 멤버함수를 조작하거나,
   * 참조할 수 있으며, 외부클래스에서는 참조 및 호출이 불가능하다.
   * 계승의 경우에는 private으로 지정된 멤버변수, 멤버함수는
   * 계승의 사용이 불가능하다.
   *
   * protected는 패키지가 서로 다를경우,
   * new로 생성된 개체의 멤버변수 접근은 금지되지만,
   * 계승의 경우 멤버변수,멤버함수의 접근이 허용된다.
   *
   * */
 
 }
}

**** 0606.java *****
package ch06;

import ch05.sub.*;

public class Ch0606 extends Car
{
 public Ch0606()
 {
  // TODO 자동 생성된 생성자 스텁
 
 }
 public static void main(String[] args)
 {
  new Ch0606();
 }
}

**** ch05.sub.Car.java ******
package ch05.sub;

public class Car
{
 //Java는 file당 한 class만 존재.(c는 여러개 가능.)
 
 //현재는 public 용어 신경쓰지 말고...
 //Car클래스의 멤버변수 owner
 //private String owner;
 protected String owner;
 
 //Car클래스의 벰버변수 name
 //private String name;
 protected String name;
 
 //Car클래스의 멤버함수 print() 정의
 public void print()
 {
   System.out.println("Owner : "+owner+", name : "+name );
 
 }
 
 //반환형 없는 함수이며 클래스이름과 같은 이름을
 //같은 함수를 생성자함수라고 부른다.
 //아래와 같은 이자없는 생성자는 프로그래머가
 //지정하지 않앙도 자여스레 컴파일러가 생상자함수를
 //강제로 만들어준다.
 
 //public void Car() // 생성자 함수가 아니라 일반함수로 인식.
 public Car(String name, String owner)
 {
  // TODO 자동 생성된 생성자 스텁
  System.out.println("Car생성자 실행");
  //매개변수와 멤버변수 이름이 같을때, 매개변수로 인식됨.
  //name = name;
  //반드시 클래스의 멤버변수를 가르킬때에는
  //this.멤버변수명을 사용하여야 한다.
  this.name = name;
  this.owner = owner;
  //생성자를 이용하여 멤버변수 조작하는 방법...이였음.
 
  //생성후 new Mission() 객체 일일이 생성해야하므로, 미리 호출될때 생성.
  mission = new Mission();


 }
 
 // Mission 클래스 추가후
 //멤버변수에 사용자 정의 클래스 레퍼런스를 지정할경우
 //Car클래스는 Mission클래스에 대해 소유관계를 맺는다고 한다.(집합)
 public Mission mission;
 
 public Car()
 {
  /*
   * 기본생성자의 첫줄에 컴파일러가
   * 상위클래스의 생성자를 자동으로 호출한다.
   * super() : 상위클래스의 생성자함수를 의미
   * this() : 현재클래스의 생성자 함수를 의미.
   * */
  // TODO 자동 생성된 생성자 스텁
  System.out.println("Car()~~~");
 }
}

Posted by 말없제이
,