AppleTree iOS

java - 7일째(source) 본문

JAVA/기초 JAVA

java - 7일째(source)

사과나무 2010. 7. 16. 15:54


package console.app.object.ex;
import java.util.HashMap;

public class ExExample {
 
  
 
 public String getName() {
  return name;
 }
 public String getAddress() {
  return address;
 }
 public int getAge() {
  return age;
 }
 //private 은 현재 클래스에서만 사용할수 있습니다.
 //현재클래스 객체 이외에서는 사용할수없습니다.
 
 private String name;
 private String address;
 private int age;
 
 public ExExample(){
  
 }
 public ExExample(String name,String address,int age){
  this.name=name;
  this.address=address;
  this.age=age;
 }
 
 public void setObject(Object name){
  System.out.println(name);
 }
 
 public static void main(String[] args) {
  //java.util: 이 패키지에는 담고 빼고, 던지고,더하고,모으고,시계,달력,나라설정에대한
  //모음집 패키지입니다.
  
  ExExample ex = new ExExample();
  ex.setObject("나는 문자열을 입어넣을거야");
  ex.setObject(10);
  
  
  //모든 클래스의 부모는 Object 이기 때문에
  //어떤 자식형이든 다 받을수 있다.
  
  
  
  HashMap hash = new HashMap();
  
  //HashMap : 값을 담을때 인덱스 값은 아무값이나 상관없습니다.
  //0,1,2
  //배열와 HashMap
  //배열은 인덱스(index) 0부터 무조건 담고 출려합니다,반드시 정수형(int) 담아야합니다.
  //HashMap : 초기값을 맘대로 설정할수 있고,어떤형이든 초기값이 올수있습니다.
  //무명클래스는 왼쪽=오른쪽에서 오른족만있는 원본을 얘기합니다.
  //인자가 Object 로 되어있스면 모든 형을 담을수 있다.
  
  //외쪽=오른쪽
  //HashMap 클래스형을 호딘
  //왼쪽으로 Object 로 값을 담는다.
  
  //부모  자식
  Object ob= new HashMap();  
  System.out.println(ob.getClass().getName());
  
  hash.put(1,/*->*/new ExExample("홍길동","한국",20)/*무명클래스*/);
  hash.put(2,new ExExample("아무개","한국2",20));
  hash.put(3,new ExExample("김현호","한국3",20));
  hash.put(4,new ExExample("이명박","찍찍",50));
  //hash.put("메롱",new ExExample("이명박","찍찍",50));
  
  /*for(int i=1;i<=hash.size();i++){
   //hash 객체의 키값을 찾는다 현재 저장된 키값은 정수형입니다.
   //System.out.println((String)hash.get(i));
   ExExample ex3 = (ExExample)hash.get(i);
   System.out.print(ex3.getName()+"\t");
   System.out.print(ex3.getAddress()+"\t");   
   System.out.println(ex3.getAge()+"\t");
   System.out.println("==================");
  }*/

 }
 
}


package console.app.object.ex;

public class ExTwo {

 public ExTwo(){
  System.out.println("부모생성자입니다.");
 }
 
 public ExTwo(String name,int age){
  System.out.println(name+age);
 }
 
}



package console.app.object.ex;


//추상클래스 : abstract class
//인터페이스 : interface

public abstract class ExThree {

 private String name;
 private String address;
 private int age;
 
 public void PhoneView(){
  System.out.println("부모에서 먼저 선언합니다.");
 }

 
 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getAddress() {
  return address;
 }

 public void setAddress(String address) {
  this.address = address;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public static void main(String[] args) {
  //추상클래스
  //추상클래스는 단독으로 new (객체를) 만들수없다.
  
  //ExThree ex = new ExThree();
  //메소드는 객체나 static 으로만 호출할수 있다.
  //추상클래스는 단독으로 쓰지않고 반드시 하위에 상속받는 클래스가있어야한다.
  
  System.out.println("test");
  
  ExThree ex = null;
  //ex.setName("이름");
  

 }

}



package console.app.object.ex;

public class ExFour extends ExThree {

 private String Phone;

 
 public String getPhone() {
  return Phone;
 }


 public void setPhone(String phone) {
  Phone = phone;
 }
 @Override
 public boolean equals(Object obj){
  //현재메소드는 Objrct 에있는 메소드를 오버아리딩해서 다시 재정의한겁니다.
  //오버라이딩은 값을 추가하고 싶거나 재정의하고 싶을때 또는 클래스 밑으로 떨어지고 싶을때
  //사용됩니다.
  //private 가 걸려있으면 오버라이딩 못합니다.
  return true;
 }
 
 //jdk15이상일때 @을 쓸수 있습니다.
 @Override//ctrl + space
 //오버라이딩 : 오버랑이딩은 부모클래스에서 정의된 메소드나,변수,클래스를 다시 재정의 할수 있다
 //오버라이딩 규칙은 메소드명과 인자명, 데이타 타입이 같아야 한다.
 //오버로딩: 메소드명은 같지만 인자값이 틀릴때
 
 public void PhoneView() {
  //부모에있는 메소드를 호출하겠다.
  //super.PhoneView();
  System.out.println("현재 클래스 ExFour 안에 있는 PhoneView()");
 }

 public static void main(String[] args) {
 
  ExFour ex2 = new ExFour();
  
  //ExThree ex2 = new ExFour();
  
  //ex2.setName("kim");
  //System.out.println(ex2.getName());
  
  ex2.PhoneView();
  
  //ex2.get
  
  //상속 : 부모는 모든 자식클래스를 포함한다.
  //모든클래스의 부모는 Object 이므로
  //모든 클래스를 포함하고 있다.
  //모든 클래스형을 받을수있다.
  
  //범위 : 자식은 부모보다 크거나 같다(부모에있는 모든것을 상소갇으므로)
  
  //레벨 : 왼쪽=오른쪽
  //오른쪽 클래스가 자시이고 왼쪽 클래스가 부모면
  //부모 클래스의 메소드만 보이고 자식 클래스의 메소드는 보이지 않는다
  //실제 찾지못한다.
  
  /*
  ex.setName("kim");
  ex.setAddress("address");
  ex.setAge(10);
  
  System.out.println(ex.getName());
  System.out.println(ex.getAddress());
  System.out.println(ex.getAge());
*/
 }

}



package console.qnapool;

public class QnaPoolParent {

 public String name;
 public String address;
 public int age;
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public QnaPoolParent(){
  System.out.println("부모클래스의 기본생성자");
 }
 
 
}



package console.qnapool;

public class QnaPoolfirst extends QnaPoolParent {

 private String Phone="Phone";
 
 @Override
 public String getName() {
  return this.name;
 }
 @Override
 public String getAddress() {
  return this.address;
 }
 @Override
 public int getAge() {
  return this.age;
 }
 @Override
 public void setName(String name) {
  super.setName(name);
 }
 @Override
 public void setAddress(String address) {
  super.setAddress(address);
 }
 @Override
 public void setAge(int age) {
  super.setAge(age);
 }
 
 public QnaPoolfirst(){
  super();
  System.out.println("자식클래스의 기본생성자"); 
 }
 
 
 public static void main(String[] args) {
  
  QnaPoolfirst qna=new QnaPoolfirst();
  
  System.out.println(qna.Phone);
  
  
  qna.setName("나");
  qna.setAddress("서울");
  qna.setAge(20);
  
  System.out.println(qna.getName());
  System.out.println(qna.getAddress());
  System.out.println(qna.getAge());
  
  
  
   
  
  
  
  
  //부모 클래스 이름 : QnapoolParent
  //부모클래스에 이름,나이,주소 메소드 get,set
  //자식클래스에서
  //QnaPoolfirst gna=new QnaPoolfirst();
  //자식 클래스에서 호출
  //29분까지 하고 다음 문제출력
  
  
  //qna2
  //자식클래스에서 phone 전역변수 정의하고 출력
  //자식클래스에서 기본생성자를 호출하고 super를 써서 부모생성자를 호출
  
  //qna3
  //부모클래스 나이 메소드 get,set을 자식 클래스에서 오버라이딩하고
  //출력
  
  
  //자바클래스,중첩클래스,인터페이스(기본자바는 화요일까지 끝내겠습니다)
  //수요일부터는 실전자바로 나가겠습니다.

 }

}





'JAVA > 기초 JAVA' 카테고리의 다른 글

java - 9일쩨(source)  (0) 2010.07.20
java - 8일째(source)  (0) 2010.07.19
java - 6일쩨(source)  (0) 2010.07.15
java - 5일째 (source)  (0) 2010.07.14
java - 4일째  (0) 2010.07.13
Comments