class Books{

 String title;

 String author;

}

public class BooksTestDrive {

 public static void main(String args[]){

  Books [] myBooks = new Books[3];

  //myBooks[0]  = new Books();

  //myBooks[1]  = new Books();

  //myBooks[2]  = new Books();

  int x = 0;

  myBooks[0].title = "The Grapes of JAVA";

  myBooks[1].title = "The JAVA of Gatsby";

  myBooks[2].title = "The JAVA Cook Books";

  myBooks[0].author = "bob";

  myBooks[1].author = "sue";

  myBooks[2].author = "ian";

  

  while (x < 3){

   System.out.println(myBooks[x].title);

   System.out.println(" by ");

   System.out.println(myBooks[x].author);

   x = x + 1;

  }

  

 }


}


굵게 글씨쓴 부분이 존재하지 않으면(그니까 주석을 풀지 않는다면) 프로그램 오류가 뜬다.


이유인 즉슨,

 Books [] myBooks = new Books[3]; 이 구문은 단순히 배열만 선언 했다는것!

지금은 Books 배열에 들어있는 원소는 Books 레퍼런스 변수에 불과하다는 점이다!


Books 객체는 따로 만들어 주어야 한다.

Posted by thread1525

댓글을 달아 주세요

class Clock{

  private String  time;

 

 public void setTime(String t){

  time = t;

 }

 public String getTime() {

  return time;

 }

}

public class ClockTestDrive {

 public static void main(String args []){

  Clock c = new Clock();

  

  c.setTime("1256");

  String tod = c.getTime();

  System.out.println(tod);

 }


}



인스턴스 변수들은 private로 선언하고 

setter 와 getter는 public 으로 선언하는 것이 바람직하다고 한다.


이는 객체지향 캡슐화를 지향하기 위해서 인데

private로 선언된 변수를 setter와 getter를 이용하여 수정하여

다른사람이 데이터(private로 선언된 변수)를 함부로 수정하지 않도록 하기 위함이란다.



'Programing > JAVA' 카테고리의 다른 글

인스턴스 복사  (0) 2015.02.10
배열과 객체생성 잊지 말아야 할 점!  (0) 2015.02.10
Setter와 Getter  (0) 2015.02.10
다형성 배열을 이용하여 객체를 생성!  (0) 2015.02.10
추상 클래스, 추상 메소드의 개념  (0) 2015.02.10
소수점 자리 출력하기  (0) 2015.02.10
Posted by thread1525

댓글을 달아 주세요

다형성을 사용하면 레퍼런스 유형을 실제 객체 유형의 상위클래스 유형으로 지정할 수 있다!


예제)

Animal[] animals = new Animal[5];


animals [0] = new Dog(); 

animals [1] = new Cat(); 

animals [2] = new Wolf(); 

animals [3] = new Hippo(); 

animals [4] = new Lion();


for (int i = 0; i < animals.length; i++) {


animals[i].eat();

animals[i].roam();

}


Animal 배열에는 Animal의 하위클래스에 속하는 모든 객체를 집어넣을 수 있다.


진하게 표시된 부분이 다형성과 관련하여 가장 중요한 부분, 배열의 모든 원소에 대해 순환문을 돌려

Animal 클래스에 들어있는 메소드 중 하나를 실행시키면 각 객체마다 올바른 메소드를 실행하는 것을 확인할 수 있다!

'Programing > JAVA' 카테고리의 다른 글

배열과 객체생성 잊지 말아야 할 점!  (0) 2015.02.10
Setter와 Getter  (0) 2015.02.10
다형성 배열을 이용하여 객체를 생성!  (0) 2015.02.10
추상 클래스, 추상 메소드의 개념  (0) 2015.02.10
소수점 자리 출력하기  (0) 2015.02.10
상속  (0) 2015.02.10
Posted by thread1525

댓글을 달아 주세요


블로그 이미지
1525번 thread 입니다.
thread1525

공지사항

Yesterday9
Today1
Total6,171

달력

 « |  » 2019.10
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

최근에 달린 댓글

최근에 받은 트랙백

글 보관함