버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 이것이자바다
  • dml
  • 기본쿼리
  • 스프링
  • 세션
  • foreach
  • 안드로이드
  • final필드
  • 데이터베이스
  • 포트폴리오
  • 배열
  • 게시판
  • 객체지향
  • 스택
  • 변수
  • 이클립스
  • 만들기
  • 부트스트랩
  • 큐
  • 버블소트
  • 홈페이지
  • 문제풀이
  • 오라클
  • callback
  • sqld
  • SQL
  • 함수
  • 코틀린
  • opacity
  • 톰캣

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

인스턴스 멤버 , 정적 멤버 / 싱글톤 / final 필드 , 상수 / 패키지 / 상속 / 메소드 재정의
🏃‍♀️ Do it !/TIL

인스턴스 멤버 , 정적 멤버 / 싱글톤 / final 필드 , 상수 / 패키지 / 상속 / 메소드 재정의

2022. 9. 13. 10:42
728x90

2022 / 9 / 13 화

 

  • 인스턴스 멤버 ,  정적멤버 
  • 싱글톤
  • final 필드 , 상수
  • 패키지
  • 상속

✔️ 인스턴스 멤버 , 정적 멤버

 

인스턴스 멤버 

- 객체를 생성한 후 사용할 수 있는 필드와 메소드

- 객체없이는 사용이 불가하다.

 

this

- 객체(인스턴스) 자신의 참조를 갖고 이는 키워드

- 객체 내부에서 인스턴스 멤버임을 명확히 하기위해 this. 을 사용한다.

 

정적 멤버 

- 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용 할 수있는 필드와 메소드

- 객체 내부에 존재하지 않고, 메소드 영역에 존재한다. 

- static 키워드를 사용하여 정적 멤버를 선언한다.

인스턴스 멤버 선언 vs 정적 멤버 선언 기준

필드 객체마다 갖고 있어야 하는 데이터 인스턴스 필드
공용 데이터 정적 필드
메소드 인스턴스 필드로 작업해야 하는 메소드 인스턴스 메소드
인스턴스 필드로 작업하지 않는 메소드 정적 메소드

✔️ 싱글톤

싱글톤?

- 하나의 클래스로 객체를 단 한번만 생성하도록 클래스를 설계하는 것으로 소프트웨어 디자인 패턴중 하나이다. 

public class Singleton {

	private : 외부에서 접근을 막는 기능.
	
	1)자신의 객체를 내부의 필드(private)로 생성
	private static Singleton singleton = new Singleton();
	
	2)생성자(private)
	private Singleton() {}
	
	3)생성된 자신의 객체를 참조하는 메서드정의 접근자 생략시 default
	static Singleton getInstance() {
		return singleton;
	}
}

✔️ final 필드와 상수 ( static final )

final 필드?

최종적인 값을 갖고있는 필드로 값을 변경할 수 없는 필드이다. 

즉 초기값이 저장되면 이가 최종값이 되어서 프로그램 실행 도중에 수정이 불가하다는 것이다. 

 

상수?

- 불변의 값을 상수라 한다. 

- 상수 이름은 전부 대문자로 작성

- 다른 단어가 혼합된이름이라면 _ 로 연결

public class Earth {

	//필드에 final키워드를 사용하면, 초기값 이외에는 다른값으로 변경할수가 없다.
	static final double EARTH_RADIUS = 6400;
	static final double EARTH_SURFACE_AREA;
	
	static {
		EARTH_SURFACE_AREA = 4 * Math.PI * EARTH_RADIUS * EARTH_RADIUS;
	}
}

✔️ 패키지

패키지란?

- 클래스를 기능별로 묶어서 그룹 이름을 붙여 놓은 것이다. 

- 클래스를 체계적으로 관리하지 않으면 복잡하고 난해한 프로그램이 되어 결국 유지보수하기가 어려워진다. 

- 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식한다 !

 

import문

- 다른 패키지에 속하는 클래스를 사용하기 위해서는 두 가지 방법 중 하나를 선택해야 한다. 

  1. 패키지와 클래스를 모두 기술 ( 코드가 복잡해짐 )
  2. import문 사용
사용하지 않은 패키지 정리.  CTRL+SHIFT+O

import sec12.exam03_import.hankook.SnowTire;
import sec12.exam03_import.hundai.Engine; //Engine클래스는 패키지명을 생략하여, 사용가능
import sec12.exam03_import.kumho.BigWidthTire;

public class Car {

	//필드
	Engine engine = new Engine();
	SnowTire tire1 = new SnowTire();
	BigWidthTire tire2 = new BigWidthTire();
	
	//Tire클래스는 2개의 패키지에 존재하여, 중복되어 있으므로 혼란을 방지하기위하여 패키지명.클래스명 형식으로 사용한다.
	sec12.exam03_import.hankook.Tire tire3 = new sec12.exam03_import.hankook.Tire();
	sec12.exam03_import.kumho.Tire tire4 = new sec12.exam03_import.kumho.Tire();

}

✔️ 상속

상속이란

- 자식 클래스가 부모 클래스의 멤버를 물려받는것

 

클래스 상속 ( extends )

- 자식 클래스가 상속할 부모 클래스를 지정하는 키워드 

   class 자식 클래스 extends 부모클래스1 { }


  • new연산자 : 메모리 생성연산자(힙영역)
  1. new연산자가  DmbCellPhone클래스의 상속관계를 먼저 확인 후
  2. 상속되어 있으면, 부모클래스의 메모리를 먼저생성한다.
  3. 자식(자신)클래스의 메모를 생성한다.
  4. 부모생성자 호출- 자식(자신)생성자 호출 순서로 진행이 된다.

부모 생성자 호출 ( super(...) )

- 부모 생성자는 반드시 자식 생성자의 첫 줄에 위치한다. 

- 부모 생성자가 없다면 컴파일 오류 발생


✔️ 메소드 재정의

Overloading Overriding
중복정의 재정의
하나의 클래스 안에서 동일한 이름을 여러개 사용 부모클래스의 메서드 명을
자식클래스에서 동일하게 사용하며,
자식클래스에서 내용을 변경하는 것.

@Override 

- 컴파일러에게 부모 클래스의 메소드 선언부와 동일한지 검사를 지시한다. 

 

'🏃‍♀️ Do it ! > TIL' 카테고리의 다른 글

MySQL설치하기  (0) 2022.09.15
final 클래스 / 접근 제한자 / 오라클 설치  (0) 2022.09.14
객체 / 클래스 / 생성자 / 메소드  (0) 2022.09.08
자바 배열 / 열거 타입  (0) 2022.09.07
연산자 / 이클립스 디버깅  (0) 2022.09.06
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • MySQL설치하기
    • final 클래스 / 접근 제한자 / 오라클 설치
    • 객체 / 클래스 / 생성자 / 메소드
    • 자바 배열 / 열거 타입
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바