>

TIL

JAVA - 객체 지향 프로그래밍 언어의 특징, 클래스

ekdud 2024. 12. 12. 14:40

📑

     

    객체지향프로그래밍의 특징

    • 캡슐화: 데이터(필드)와 동작(메소드)를 하나로 묶고 실제 구현 내용을 외부에 감추는 것. 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 보호. 접근 제한자를 사용함.
    더보기
    더보기

    * 접근 제한자

    - public: public으로 설정된 클래스, 변수, 메소드는 외부 어디에서나 접근 가능. (다른 패키지에서도 접근 가능)

    - protected: 이 클래스를 상속하는 자식 클래스와 같은 패키지에 있는 클래스에서 접근 가능.

    - private: 클래스 내부에서는 자유롭게 접근이 가능하지만, 외부에서는 접근이 불가능.

    - default: 동일한 패키지에서 접근 가능,

    • 상속: 상위객체(부모객체)의 필드와 메소드를 하위객체(자식객체)에게 물려줌.
    • 다형성: 프로그램을 구성하는 객체를 바꾸면 프로그램 실행 성능이 다르게 나올 수 있음. 자동 타입 변환과 재정의 기술 사용. 상속과 인터페이스 구현으로 얻을 수 있음.

     

    객체와 클래스

     

    • 클래스 선언: public class 클래스명{ } 과 같이 작성. 클래스명의 첫 문자는 대문자. 캐멀스타일로 작성. 특수문자 $, _를 포함할 수 있음.이 때, 소스 파일명과 동일한 클래스만 공개 클래스(public class)로 선언할 수 있음. 따라서 특별한 이유가 없다면 소스 파일 하나당 클래스 하나를 선언하는 것이 좋음.
    • 복수 개의 클래스 선언이 포함된 소스 파일을 컴파일하면 클래스 선언 수만큼의 바이트코드 파일(.class)가 생성됨.
    • 객체생성: 객체 생성 연산자인 new 사용. 클래스 변수 = new 클래스();
    • 클래스의 용도
    더보기
    더보기
    1. 라이브러리 클래스: 실행할 수 없으며 다른 클래스에서 이용
    2. 실행 클래스: main()메소드를 가지고 있는 실행 가능한 클래스

    일반적으로 자바 프로그램은 하나의 실행 클래스와 여러 개의 라이브러리 클래스들로 구성됨. 실행 클래스는 실행하면서 라이브러리 클래스를 내부에서 이용함.

     

     

    SportsCar.java
    
    package ch06.sec03;
    
    public class SportsCar{
    	...
    }
    
    class Tire{   
    	...
    }  //Tire도 public클래스로 선언하고 싶다면 Tire.java 소스 파일을 별도로 생성해야함.

     

     

    클래스의 구성

     

     

     

    필드

    - 선언:  타입 필드명 [ = 초기값 ] ; 

    필드명은 첫 문자를 소문자로 하되, 캐멀스타일로 작성.

    타입은 기본타입과 참조타입 모두 가능.

    *반드시 클래스 블록에서 선언되어야만 필드 선언이 됨.

     

    - 객체 내부의 생성자와 메소드 내부에서 사용. 객체 외부에서도 접근해서 사용할 수 있음.

    - 객체 접근 연산자 도트(.)를 사용해 필드나 메소드에 접근. 참조 변수 뒤에 붙임.

     

     

    ex. Car 클래스의 필드

    class Car {
    	String model = "그랜저";  //고유 데이터 필드
    	int speed = 300;  //상태 데이터 필드
    	boolean start = true;  //상태 데이터 필드
    	Tire tire = new Tire();  //부품 객체 필드

     

     

    초기값을 제공하지 않을 경우 필드는 객체 생성 시 자동으로 기본값으로 초기화됨.

     

     

    필드와 (로컬)변수의 차이점