객체지향 4 대 특징 


 * 캡슐화 , 은익화

 * 상속 

 * 다형성 ( Overload, Overriding)

 * 추상화 (복잡한것을 단순화 )

     클래스 설계자 입장 

     클래스 사용자 입장 



* OverLoad (오버로드)


   1. 하나의 클래스 내에 이름이 같은 메서드가 여러개인 경우 

   2. 구분은 매개변수(인수) 로 한다 , 인수 갯수가 다르거나 , 인수자료형이 달아야 한다 

 

     ------------------------------------ 

       class AA extends Object

          {

             void    aa(){}

             int      aa(int a){}

             String  aa(String name){}

          }

     ------------------------------------   

   3. 확장(상속)이 가능하다

   4. 리턴형은 같아도 달라도 상관없다 



* Overrding (오버라이딩)


   1. 상속 받은 메서드 내용 재정의 

   2. 리턴형, 인수개수 , 인수자료형은 반드시 같아야 한다 


   3. 접근제한자 상위와 같거나 , 더 넓은 개념으로 사용하면 된다

      ( 상위의 proptected 는   public 사용가능 하다 )


   4. 상속 관계로서 사용 가능 

   5. 확장(상속)가능 하다 


----------------------------------------------------------------

  class 클래스이름

   {

     // 변수 선언 

     private int age ; // 은폐필드 ( 자신의 클래스 내에서만 사용 가능)

     생략    int age;  // 같은 패키지 내에서 사용 가능 

     proptected String name ; // 보호필드 ( 자신의 클래스와 , 상속 받은 클래스에서 사용 가능 )

     public  String pum;// 공개필드 ( 어디서나 사용 가능)


    private 리턴형 메서드명(){}

    생략    리턴형 메서드명(){}

    protected  리턴형 메서드명(){}

    public  리턴형 메서드명(){}


   }


  class 클래스이름2 extends 클래스이름 implements 인터페이스명

   {


   }

----------------------------------------------------------------

* 메서드란 

  기본적으로 프로그램 명령문의 집합이며, 자바에서는 실행의 기본 단위가 된다 

  메서드는 클래스에 속한 일 부분이다 


* 클래스란 

  하나 이상의 변수, 또는 메서드를 포함하고 있는 변수와 메서드 집합체이다 

  하나의 단위 프로그램이다( 모듈)


* 자바 프로그램이란 

  하나 이상의 클래스로 구성된 클래스 집합체이다 .

  저장은 main() 이 소속해 있는 클래스 이름으로 저장 한다

  

프로그램을 실행하는 동안에  동일 클래스나 , 다른클래스에 있는 메서드를 호출할 수 있다

프로그램 코드는 항상 메서드내에 존재해야 하며, 메서드는 항상 클래스내에 존재해야 한다 

------------------------------------------------

메서드 기본 형식 

------------------------------------------------


[접근제한자] 리턴형 메서드명(인수)

{

   처리내용 ;

}

------------------------------------------------


[접근제한자] [static] 리턴형 메서드명(인수) throws ExceptionList

{

   처리내용 ;

}

------------------------------------------------

public static void main(String args[]) throws IOException

{

}

------------------------------------------------

메서드는 실행중 런타임오류가 발생할 수 있다.

자바에서는 이런 문제를 다룰 수 있는 예외처리 기능이 제공된다 


<< 메서드 예제 >>


void aa() {}

boolean bb(int a) {}

int cc(String str){}

void ee(char ch){}



===형식============================

리턴형 메서드명()

{

 처리;

 return 값;

}

===============================

void aa()

{

처리 ;

}

---------------------------------

int aa()

{

  처리 ;

  return 100;

}


---------------------------------

char aa()

{

  처리 

  return 'A';

}

---------------------------------


double aa()

{

  처리 

  return 12.5;

}

---------------------------------

String aa()

{

  처리;

  return "kim";

}

---------------------------------

클래스이름 aa()

{

  처리;

  return 객체;

}

---------------------------------

 <<< 메서드 호출  >>>


  자신의 클래스에서는 메서드 호출 ==> 메서드명(인수값)


  다른클래스의  메서드 호출 ==> 객체생성하고, 객체.메서드(인수값)


  static 메서드 호출 =====> 클래스이름.메서드(인수값)     ex) Math.random()

                                     객체생성하고, 객체.메서드()


<< static 메서드들  >>=== java.lang.Math


public static double abs(double a) ==> 절대값

public static double ceil(double a) ==> 올림값

public static double floor(double a) ==> 내림값

public static double round(double a) ==> 사사오입 

public static double max(double a,double b) ==> 둘 중 큰값를리턴

public static double min(double a,double b) ==> 둘 중작은 값를리턴


static 메서드 


1. static 멤버변수는 오직 하나의 인스턴스만을 갖는다 


2. static 메서드는 static으로 선언된 변수,메서드만 호출 가능하다 


3. static 으로 선언된 것은 객체 생성 않고도 호출 가능한다 

   예: Math.max(7,8)


4. static 멤벼 변수는 그 클래스내의 모든 객체가 , 그를 공유한다 


5. static 메서드에서는 this 사용 못함 : 자신을 2번 지칭하는 것이므로  


※ static 으로 선언된 필드는 모든 클래스 객체를 통틀어  하나만 존재해야한다 

  이들 모든 객체가 공유하게 된다 


------------------------------------------------


<끝>

'Web Programming > Java' 카테고리의 다른 글

Java(자바) awt  (0) 2018.01.20
Java(자바) 인터페이스와 추상클래스  (0) 2018.01.20
Java(자바) 배열(Array)  (0) 2018.01.20
Java(자바) 제어문  (0) 2018.01.20
Java(자바) 명령줄 인수  (0) 2018.01.20
Posted by 홍이홍이
,