JAVA

Class

스물훈 2020. 4. 16. 10:29

1.Class

- 관련있는 속성(변수 - property)과 메소드를 모아놓은 사용자 정의 자료형(개발자가 직접 만드는 자료형)

- 프로그래밍 언어나 프레임워크 제작 회사에서 제공하는 클래스 - API, SDK

- 사용자가 제작하는 클래스

- 다른 개발자가 만든 클래스 -> 3rd party

 

2.Class 생성

 

접근지정자 class 클래스이름 extends 상위클래스 이름 implements 인터페이스 이름 나열{

 

     속성

     생성자

     메소드

}

1) 접근지정자: private, protected, package(생략 - default), public: 클래스의 사용 범위 지정

2) 클래스 종류: abstract, final, static, 생략

3) class, 클래스 이름은 생략 불가

4) extends: 상속을 받기 위해서 사용, 자바는 단일 상속만 지원하므로 상위 클래스는 1개만 존재,

                   생략한다면 Object 클래스로부터 상속받은것으로 간주함

5) implements: 인터페이스를 구현하기 위해서 사용, 생략 가능하고 여러 개의 인터페이스 구현 가능

 

3. 객체 지향(object oriented programming)

- 관련있는 속성이나 메소드를 클래스로 만들고 이 클래스를 이용해서 인스턴스를 만들어 사용하는 프로그래밍 기법

- 최근의 프로그래밍언어는 객체 지향을 지원한 상태에서 함수형 프로그래밍을 같이 지원

  (자바는 함수형 프로그래밍을 지원하지 않지만 람다를 이용해서 함수형 프로그래밍과 유사한 방식을 제공

 

4. 객체 지향 특징

1) Encapsulation(캡슐화) - 클래스를 만드는 방법

2) Inheritance(상속) 

3) Polymorphism(다형성) - 동일한 코드가 호출하는 객체에 따른 메소드를 호출하는 것

 

5. 객체 지향 장점

1) 재사용성이 증가

2) 신뢰성 높은 프로그래밍 가능

 

6. Class와 Instance

class: 모형

instance: class를 기반으로 메모리를 할당받은 것

object(객체): 사용가능한 모든 것

 

int a = 10;  // 객체 -> 클래스가 아닌 것으로 생성

Integer a = 10;  // 객체이며 인스턴스 -> 클래스를 이용해서 생성

 

7. Instance 생성

- new 생성자(); // 생성자- 클래스를 기반으로 메모리를 할당하고 메모리의 참조를 리턴

 

클래스이름 변수명 = new 생성자(매개변수); //인스턴스를 만들고 그 참조를 변수에 대입

 

ex)

// 인스턴스를 다른 곳에서 사용하기 위해 참조를 st(인스턴스)에 대입

Student(클래스이름) st(변수명) = new Student(생성자)() (매개변수 없음);

 

8. 명명법

- Class 이름은 첫글자를 대문자로 하고 나머지는 소문자, 2개 단어 이상의 조합으로 할 때는 각 단어의 첫글자는 대문자로.

특별한 경우에 대문자의 연속으로 만들기도 함(약어를 사용한 경우)

- 클래스의 구성 요소 중에서 속성과 메소드는 소문자로 시작하는 것을 권장

 

9. java 파일 규칙

- 일반적으로 하나의 파일에 하나의 클랫그를 생성

- 파일이름은 클래스이름.java

- 하나의 파일에 여러 개의 클래스를 생성할 수 있음, 이 때 public클래스는 한개여야 하고, 

   public클래스가 있다면 해당 클래스 이름으로 파일을 생성해야 함. 

   (안드로이드에서 하나의 파일에 여러개의 클래스를 만드는 경우가 종종 있음)

 

10. main 메소드를 소유한 클래스

- Java Application은 main메소드를 소유한 클래스만 실행이 가능.

- 실행을 할 때는 java 클래스이름으로 실행.

   IDE에서는 main 메소드를 소유한 클래스를 선택하고 run.