본문 바로가기
Programming/Java

[JAVA] 패키지와 상속

by 공부합시다홍아 2023. 11. 10.
 

[JAVA] 객체와 클래스

[JAVA] 스택(Stack)과 큐(Queue) [JAVA] 매서드 [JAVA] 2차원 배열 [JAVA] 배열을 이용한 문제풀이 [JAVA] 정렬과 복사 [JAVA] 배열 연습 [JAVA] 소수(Prime Number) 구하기 반복문을 이용한 별만들기 [JAVA] 제어문 제어

hong-study.tistory.com


Garbage Collection
  • 객체를 생성하는데 사용되는 키워드는 New 이지만, 생성된 객체를 메모리에서 해제시키는 키워드는 존재하지 않음.
  • 그 이유는 자바는 JVM이 알아서 메모리를 관리하기에, 이를 Garbage Collecting 이라고 한다.
  • 객체가 더 이상 프로그램에서 사용되지 않으면 가비지 컬렉터가 스스로 판단해 메모리를 해제시킨다.

패키지 ( Package )
  • 클래스는 크게 2가지 종류가 있다.
  • 하나는 직접 만들어 사용하는 "사용자 정의 클래스"
  • 다른 하나는 JDK( Java Development Kit )안에 포함되어 있거나, 타인이 만들어놓은 클래스
  • 클래스들은 종류가 매우 많고, 비슷한 기능을 분류할 필요가 있기에, 서로 관계가 있는 클래스를 패키지로 묶어 사용
  • 현재 클래스에서 다른 패키지 외부 클래스를 사용할 경우, Import 키워드로 해당 클래스의 전체경로를 지정해야한다.
  • 해당 패키지 안에 모든 클래스를 사용하길 원한다면 import * 을 사용하면 된다.

패키지(Package) 선언 방법
  • 사용자가 임의로 패키지를 만든다면 클래스의 가장 윗부분에 패키지 구문을 포함시키면 된다. 
  • 패키지 이름은 영문 소문자로 지정
  • 대분류와 소분류 패키지를 구분할 때는 .(dot) 을 사용
  • 최상위 패키지의 이름은 java로 시작 불가( java 패키지는 표준 API 들의 모음을 구성 )
  • 자바의 키워드들도 패키지 이름으로 사용 불가


데이터 타입 [ 참조타입, 기본 타입 ]
  • 기본 타입 ( Primitive Type )
    • 정수, 실수, 문자, 논리 값을 저장하는 데이터 타입
    • 선언된 변수는 실제 값(Value)을 변수 안에 저장

 

  • 참조타입 ( Reference Type )
    • 객체의 주소를 참조하는 타입 ( 배열, 클래스, 인터페이스 타입 )
    • 선언된 변수는 메모리의 주소값을 변수 안에 저장
    • 선언된 변수는 스택(Stack) 영역에 주소값을 저장하고, 내부의 실제값은 힙(Heep) 영역에 저장한다.

프로그램 실행에 따른 스택, 힙 영역 변화 


상속 ( Inheritance )
  • OOP 에서 상속은 기존의 클래스를 확장하여 새로운 클래스를 이끌어내는 것을 의미한다.
  • 상속은 기존의 코드를 재사용함으로써 불필요한 코드를 재작성하는 번거로움을 없앤다.
  • 새로운 클래스를 만드는 시간과 노력을 줄일 수 있다.

  • 상속은 단일 상속만 지원한다.
  • 어떤 클래스가 다른 클래스로부터 상속을 받아 만들어지면 새롭게 만들어진 클래스를 자식클래스
  • 멤버변수와 메서드를 물려준 클래스를 부모클래스 라고 한다.
  • 상속을 하면 부모클래스의 멤버변수와 메서드가 자식클래스에 그대로 전달됩니다. 
    • 그러나 부모클래스의 생성자는 상속이 되지 않는다.
  • 상속을 사용하는 키워드는 extends 이다.
  • 자바의 모든 클래스는 Object 클래스를 상속받고 있다. 

[부모클래스]

public class Parent {
	String father;
	String mother;
		
	
	Parent(String father, String mother) {
		this.father = father;
		this.mother = mother;
	}

	void info() {
		System.out.println("아버지 : " + father + ", 어머니 : " + mother);
	}
}

 

[자식클래스]

public class child extends Parent{
	
	child(String a, String b){
		super(a, b);
	}
	
	
}

 

[MainClass]

public class MainClass {

	public static void main(String[] args) {
	
		child c = new child("1", "2");
		c.info();

	}

}

 

728x90

'Programming > Java' 카테고리의 다른 글

[JAVA] 다형성  (1) 2023.11.14
[JAVA] 접근 제한자  (0) 2023.11.13
[JAVA] 객체와 클래스  (0) 2023.11.08
[JAVA] 스택(Stack)과 큐(Queue)  (0) 2023.11.07
[JAVA] 매서드  (0) 2023.11.06