SW 배움터/자바

자바 문법 핵심만2 : 클래스

kusson 2017. 4. 6. 10:48
반응형
728x170

 클래스

 

1. 클래스란?(클래스는 데이터와 이 데이터를 처리하기 위한 동작이 모여 있는 틀)

 1)사물의 특성을 변수와 메소드로 만들어 놓은것.

 2)사물의 특성을 소프트웨어 적으로 모델링 한 것.

 3)사물의 특성을 소프트웨어 적으로 추상화 시켜 놓은 것.

 4)붕어빵을 만들때 붕어빵 틀이 클래스이다.

 5)쉽게 말하면 데이터와 처리동작으로 이루어진것.

   또는 필드와 메서드로 이루어진것.

 

ex) calss Person{      // Person 이라는 class를 선언한다.

       String name;

       int age;                                 데이터

       int weight;                             = 필드

 

       String act( ){           

           return "act";

       }                                           처리동작

                                                   = 메서드

       String runnig( ){

           return "running";

      }

    }

 

 

2. 객체와 인스턴스

 1)클래스의 속성과 행위를 실제로 만들어 놓은 것.

 2)클래스를 실제 사용할 수 있도록 만든 것.

   또는 클래스가 실제값을 가질 수 있도록 메모리 공간에 할당해 놓은 것.

 3)붕어빵 틀에서 만들어진 붕어빵이 객체.

 4)인스턴스는 클래스라는 틀을 메모리에 구현해서 사용할 수 있는 상태로 만드는 것.

 

 

3. 클래스와 객체와의 관계

  : 클래스를 붕어빵틀로 객체를 그 빵틀에서 만들어진 붕어빵으로 생각하면 됨.

    우리가 쓰는 것은 빵틀이 아니라 빵인 것처럼 클래스 자체로는 사용할 수 없고 이를

    이용해 만든 객체만 사용할 수 있음.

 

4. 자바의 메모리 구조

 메소드 영역

    메소드 바이트 코드

    클래스 변수(전역변수)

 스택(Stack)

    매개변수(파라미트)

    지역변수

 힙(Heap)

    클래스 객체

    배열 객체

    문자열 객체

 

5. 객체 지향의 3가지 중요한 개념

 1)상속성

   동물이란 카테고리 안에 조류, 포유류, 어류등등의 항목이 포함되고 또 포유류안에는 

   코끼리, 사람, 호랑이등이 포함되듯이 하위 항목은 상위의 개념을 상속한다는 것.

2)다형성 : 상속받은 것을  입맛에 맞게 바꾸어 사용 하는 것.

   ①오버라이딩(재정의)

     메소드의 이름과 매개변수가 반드시 일치 해야 함.

     슈퍼클래스의 메소드가 숨겨지기 SUPER 키워드 사용 해야 함.

   ②오버로딩(다중정의)

     메소드의 이름만 같고 매개변수의 개수 또는 자료형이 다름.

3)캡슐화

   ①접근 지정자를 이용해 데이터를 은닉, 보호 하는 것.

 

※메시지 드리븐(Message Driven) 방식

 ①메시지를 전달하면서 작동하는 프로그램.

 ②자바에서는 메시지를 점(.)을 이용해서 전달 함.

 

6.객체의 생성

 1)객체를 생성하는 두가지 방법

   ①클래스명 객체 참조 변수;                                           ex) Car   carEx;

      객체참조 변수 = new 클래스 생성자 명();                      ex) carEx = new Car();

   ②클래스 명 객체참조 변수 = new 클래스 생성자명();          ex) Car carEx = new Car();

 2)CarEx는 참조형 변수이고, 클래스 Car의 객체가 저장된 위치정보(주소)를 저장하고 있다.

 3)new 키워드의 역할

  ①객체 생성을 위해서 메모리를 할당.

  ②할당된 메모리의 시작위치(주소)를 객체 참조변수에게 전달.

  ③생성자 호출.

 4)Car 참조형 변수 CarEx가 생성되면 점(.) 연산자를 이용해 멤버에 접근.

      CarEx.speed = 10;            //멤버 변수에 접근.

      CarEx.speedUp();              //멤버 메소드에 접근.

      CarEx.speedDown();          //멤버 메소드에 접근.

 

7.클래스의 상속

 1)자바에서는 클래스를 상속받기위해 extends라는 키워드를 사용.

   ex) public class B extends A{

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

        }

 2)자바는 다중상속을 포기하고 단일상속을 택함.

   그래서 자바는 다중상속의 장점을 인터페이스라는 것을 도입해서 흡수함.

 

※①자바의 파일명은 프로그램안의 main() 함수를 포함하는 클래스의 클래스 명과

     동일해야 한다.

  ②main() 함수가 있는 클래스는 반드시 public으로 선언되어야 한다.

  ③하나의 파일안에는 public이 선언된 클래스가 한개이하여야 한다.

   

 

 

 

 

반응형
그리드형