코딩/자료구조

자료구조 06 - 클래스

소형개미 2021. 3. 6. 13:42

*클래스 *

우선 클래스의 특징에 대해서 알아보려고 한다.

1. 캡슐화 -> 외부에서 클래스 내부를 바라보는것을 단절시켜준다. ( private ,public, protected)

2. 상속성 -> 상위클래스아래에 하위클래스가 있는 구조를 생각할 수 있다.

3. 다형성 -> 상속성과 연결지을 수 있는 특성으로 똑같은것을 여러방법으로 구현하고 상황에 따라 적당한 구현을 할수있다 라고 생각하면

될 것같다.

4.final로 선언한 클래스 변수는 한번만 값 대입가능

5 생성자로 객체생성시 인스턴스 변수의 초기화가 가능하다.

자바는 Object-Oriented Programming으로 객체지향 프로그램이다.

모든데이터를 객체로 취급하고 객체의 상태 및 행동을 다루는 프로그래밍 언어이다.

클래스는 설계도라고 생각하면 좋다

아래의 작성된 코드를 통해서 용어를 정리해 보겠다.

class animal{

           String name; ==> 인스턴스 변수

           String type;

           double weight;

           public animal(String name,String type, double weight){ ==> 생성자

                      this.name = name;

                      this.type = type;

                      this.weight = weight;****

           }

           public void changename(String name){ ==> 인스턴스 메소드

                      this. name = name;

           }

        

           public static void main(String[] args){

                      animal[] data = {                       ===> 배열로 된 인스턴스

                                 new animal("우주" ,"푸들",3.7),

                                 new animal("뽀미" ,"포메",5.8),

                                 new animal("마루" ,"푸들",7.6),

                                 new animal("우유" ,"말티즈",2.8),

                      };

 

                      System.out.println("동물목록");

                      System.out.println("이름** 종류** 몸무게");

                      for(animal i : data){ ==> 데이터라는 배열에 있는 a[0], a[1]부터 차례대로 전부 꺼내옴

                                 System.out.println(i.name + "            "+i.type+"           "+i.weight_;

                      }

           }

}

animal.java
0.00MB

클래스명 Animal

생성자 : 반환값이 없으며 클래스명과 동일하다.(void도 사용하지 않음), 객체생성시 인스턴스 변수가 초기화된다.

메소드 : 클래스 내에 구현된 함수로 객체.메소드로도 사용을 할 수있다 ( A.changename() 으로 ()가 붙는다)

객체 변수: 필드라고 불리며 객체가 사용하는 변수를 뜻함 ( A.name 으로 쓰일수 있으며 ()가 붙지 않음)

인스턴스: 클래스형으로 생성된 객체를 뜻함

클래스 변수와 객체변수

클래스 변수는 모든 객체가 공유하는 변수로 클래스 내에서 선언할수 있으며 (프로그램 실행시작~끝까지 유지)

객체변수는 인스턴스에 속해있는 변수로써 공유되지 않으며 다른객체의 변수와 독립적이다.(객체 생성 ~ 객체가 소멸될때까지 유지)

Public class - 다른패키지에서 사용가능한 클래스

final class - 접근 제한자인 final을 붙인 클래스로 서브클래스를 가질 수 없음

extends class - 이것은 예시로 설명하려고한다

예를들어 class A extends B라고 있다면 A의 하위클래스는 B이고 B의 상위클래스는 A라는 것이다.