21.07.28

.·2021년 8월 10일
0

playdata

목록 보기
8/35
post-thumbnail

DAY 08

  • static & non-static

  • 지난시간

✍️ has a~ 관계

//import Address class
// 또 다른 클래스를 멤버로 갖는 클래스 <<has a~ [멤버], is a~ [상속]>>
public class My_Test{
	private Address myAddress; //has a~ 관계
    
  public My_Test(){ // 멤버변수 초기화 /2. Address()객체를 생성
  		myAddress = new Address();
     }
   
  public My_Test(Address address){
  	 myAddress = address;
    }
    
   public Address getMyAddress(){
   	return myAddress;
    }
    
    public void set MyAddress(Address myAddress){
    	this.myAddress = myAddress;
      }
      
    @Override
    public String toString(){
    //4. 내용의 출력문을 만들어 리턴
    	//return "My_Test [myAddress= " + myAddress.toString()+"]";
        String str = String.format("%10s %10s %10s\n",myAddress.getName(), myAddress.getAddr(),myAddress.getPhone());
        return str;
        }
      }
public class M_My_Test{
	public static void main (String[] args) {
   My_Test m1 = new My_Test(); //1. 기본생성자를 호출하면서 객체 생성
   System.out.println(m1); //m1.toString() / 3.m1.toString()호출
   //5. println()로 리턴받아 출력하게 된다.
   }
   }

✍️ 객체배열 (Object Array)

public class Test01{
    public static void main(String[] args){
        
     //Object Array case 1
       Address[] ar = new Address[3];
        ar[0] = new Address("1111","1111","1111");
        ar[1] = new Address("2222","2222","2222");
        ar[2] = new Address("3333","3333","3333");
        
        for (Address res : ar){
            System.out.println(res);
          }
           System.out.println();
          
      //Object Array case 2
       Address[] ar02 = new Address[]{
       new Address("1111","1111","1111"),  //[0]
       new Address("2222","2222","2222"),  // [1]
       new Address("3333","3333","3333")};  //[2]
       
       for (Address res : ar02){
       	System.out.println(res);
        }
        }
     

✍️ API 활용

//Frame()
public class Test(){

	public static void main (String[] args){
   	Frame fi = new Frame();
       fi.setSize(new Dimensiom(500,500));
       fi.setTitle("내가만든프레임");
       
       Button bt_click = new Button ("[클릭]");
       fi.add(bt_click);
       fi.setFont(new Font("SansSerif",Font.BOLD|Font.ITALIC,50));
       fi.setVisible(true);
       System.out.println(fi.getBackground());
       
       }

✍️ 상속

  1. 클래스간의 상속

  2. 인터페이스간의 상속(추상화)

  3. 클래스가 인터페이스를 상속

    [상속의 원형]
    public class Vector<E>
    extends AbstractList <E>
    implements List<E> , RandomAvvess, Cloneable, Serializable

    ✏️ 클래스간의 상속
    - 클래스의 기능을 자유롭게 호출하고 기능을 확장하기 위해 먼저 선언된 클래스를 선조로, 기능을 필요로 하는 클래스를 후손으로 관계를 가진 경우를 말한다.
    - 단일 상속을 원칙으로 하며 다중상속은 클래스간의 허용되지 않는다. // AA <- BB super(AA) <-CC super(BB)

ex)

//두수를 관리하고 합을 구하는 클래스
public class AA{
	private int a;
    private int b;
    
    public AA(){
    	super();
        }
    
    public AA(int a,int b){
    	super();
        this.a = a;
        this.b = b;
        }
        
    //getter & setter a,b
    
    public int getHap(){
    	return getA() + getB();
        }
     }
//(a+b)-d
public class BB extends AA{
	private int d;
 
 public BB(){
 	super(); // AA()
   }
 
 public BB (int a,int b, int d){
 	super(a,b); //AA(int a,int b);
     this.d = d;
     }
  // getter & setter d
  
  public int getRes(){
  	//return (a+b)-d // X -> a,b=private
     return (getA() + getB()) -d; // O
     return getHap() -d; // O
     return getHap() - getD();// O
     //3개중에 하나 사용
    }
  }

0개의 댓글

관련 채용 정보