티스토리 뷰
자바12강 Garbage Collecting, 패키지(Package), 기본타입 vs 참조타입, 상속(inheritance)
JadeStone 2022. 10. 6. 17:40<어제 수업 복습>
-자바가 객체 프로그램이 될 수 있는 것은 jvm 자바 버츄얼 머신때문이다.
이는 운영체제 붙어서 쓰는 프로그램이 아니라 운영체제랑은 별개로 운영될 수 있는 언어인 것이다.
<오늘 수업>
-자바에서 프로그래머가 생성자를 인위적으로 생성하면, 기본 생성자를 안 만들어 줍니다.
그래서 생성자를 손대게 되면 기본 생성자를 따로 꼭 하나 만들어주는게 좋다. 꼭!
-질문사항: 한 패키지에 Main 클래스가 있다. 이 클래스에 어떤 객체 클래스를 가져다 쓰고싶을 때
이 가져다 쓸 객체 클래스는 Main 클래스와 같은 Package 안에 있어야 하는지?.
답: 같은 Package 안에 있어야 사용가능한데 다른 Package에 있는 객체클래스도 가져다 쓸 수 있는 방법이 있다. 앞으로 배울것.
*자바교안 10강 Garbage Collecting 과 패키지 *
자바교안 10강 참고.
#Garbage Collecting
- 객체를 생성하는데 사용되는 키워드는 new이지만, 생성된 객체를 메모리에서
해제시키는 키워드는 존재하지 않습니다.
- 그 이유는 자바에서는 자바 가상머신(JVM)이 알아서 메모리를 관리해주며, 이
를 가비지 컬렉팅이라 합니다.
- 객체가 더 이상 프로그램에서 사용되지 않으면 가비지 컬렉터가 스스로 판단해
서 메모리를 해제하고 수거합니다.
-가비지 콜렉터 덕분에 우리는 자바에서 작업을 할 떄 메모리 걱정 없이 작업을 할 수 있다.
램에서 이클립스에 할당한 용량이 500mb라 하고 객체 1개당 1mb. 이때 객체를 1000개만든다고 하면
할당된 용량을 넘어갔기에 오류가 날 수 있지만. 갈비지 콜렉터가 쓸모없는 데이터를 지워주기 때문에 자바에서는 오류 없이 작업이 가능한것.
#패키지(Package)
-그냥 폴더임. 프로젝트를 저장하는 workspace 폴더 안으로 들어가서 파일들을 학인해볼것.
- 프로그램에서 * 아스타링크는 곱하기의 의미도 있지만, '전부 다' 라는 의미도 갖고있음.
ex) import java.util.Scanner; -> 자바 폴더에 유틸 폴더 안에있는 스캐너 파일(객체)을 사용하겠다는 의미.
ex) import java.util.*; -> 요기처럼 * 사용가능. 의미는 유틸 폴더 안에 있는 모든 파일(객체)을 사용하겠다는 의미.
-패키지에서 하위폴더 구조를 구분하고 나타내주는것은 .
위에 예시처럼 .을 찍어서 나타내주면됨.
이 .도 연산자의 일종이다.
-모든 클래스에는 해당 클래스가 위치하는 패키지명이 꼭 알맞게 기재되어있어야한다.
안그러면 오류 뜸.
*패키지에 관한 교안 내용*
#패키지(package)
- 클래스는 크게 2종류가 있습니다.
- 하나는 개발자가 직접 만들어 사용하는 사용자 정의 클래스이고, 다른 하나는 JDK(Java
Development Kit)안에 포함되어 있거나, 다른 개발자들이 미리 만들어 놓은 클래스들이 있습니다.
- 그런데 이런 클래스들은 매우 종류가 많고 비슷한 기능들을 분류시켜야 할 필요성이 있기 때문에
서로 관계가 있는 클래스들을 패키지로 묶어서 관리합니다.
- 현재 클래스에서 다른 패키지의 외부 클래스를 사용하고 싶은 경우에 import 키워드로 해당 클래
스의 전체 경로(패키지 명까지 포함)를 지정해줘야 합니다.
- 만약 해당 패키지 안에 들어있는 모든 클래스를 사용하고 싶다면 * 기호를 넣어주면 됩니다.
ex) import java.util.Scanner;
ex) import java.util.*;
#소제목
package 선언 방법
1. 사용자가 임의로 패키지를 만드려면 클래스의 가장 윗부분에 패키지 구문을 포함시키면 됩니다.
ex) package store;
2. 패키지 이름은 영문 소문자로 지정하는 것을 권장합니다.
3. 대분류와 소분류 패키지를 구분할 때는 .(dot)을 사용합니다.
4. 최상위 패키지의 이름은 java로 시작할 수 없습니다. java패키지는 표준 API들의 모음을 구성해놓은 패키지
입니다.
5. 자바의 키워드들도 패키지이름으로 사용할 수 없습니다
#기본타입 vs 참조타입
- 기본 타입이란 정수, 실수, 문자, 논리 값을 저장하는 데이터 타입입니다.
- 참조 타입이란 객체의 주소를 참조하는 타입으로 배열, 클래스, 인터페이스 타입을 말합니다.
- 기본 타입으로 선언된 변수는 2실제 값(value)을 변수 안에 저장합니다.
- 참조 타입으로 선언된 변수는 메모리의 주소값을 변수 안에 저장합니다.
-자료구조를 공부해야 스택,힙 영역에대해서 이해할 수 있다.
#객체지향 프로그래밍 기술(상속, 은닉, 다형성)-문법.
-객체 지향 프로그램의 문법은 크게 3개, 세세하게 분리하면 총 15개.
*상속(inheritance)
-굉장히 소중한 기능. 프로그래머로서 고인물이 되갈수록 점점 더 소중함이 와 닿을것.
-상속하지 않고 개별클래스를 만들면 보기 편하다는 장점이 있으나 중복이 발생.
-상속관계를 형성하면 중복이 제거된다는 장점이 있으나 상속관계를 잘 파악하지 못 하면 운용하기 힘들어짐.(위에 뭐가 있는지를 파악을 못하면 못 써먹는다는뜻.)
-사용방법: public class 기존클래스명 extends 부모클래스이름{}
**상속(교안 내용)
- OOP에서 상속은 기존의 클래스를 확장하여 새로운
클래스를 이끌어내는 것을 의미합니다.
- 상속은 기존의 코드를 재사용함으로써 불필요한 코
드를 재작성하는 번거로움을 없앨 수 있고, 새로운
클래스를 만드는 시간과 노력을 줄일 수 있습니다.
- 단일상속만을 지원합니다.
- 어떤 클래스가 다른 클래스로부터 상속을 받아 만들어지면 새롭게 만들어진 클래스를 자식(child or sub)
클래스라고 부르며, 멤버변수와 메서드를 물려준 클래스는 부모(parent or super)클래스라고 부릅니다.
- 상속을 하면 부모클래스의 멤버변수와 메서드가 자식클래스에 상속이 됩니다. 그러나 부모클래스의 생성
자는 상속이 되지 않습니다.
- 상속을 사용하는 키워드는 extends 입니다.
- 자바의 모든 클래스는 Object 클래스를 상속받고 있습니다. Object클래스는 자바의 최상위 클래스입니다.
<오늘 기억할 내용>
-control + space bar -> 자동완성 기능(Content Assist) 이라고 함.
-자바 프로젝트 새로 만들었을 때. src 폴더에 처음에 있는 모듈-인포라는 클래스는 삭제하기.
<오늘 다짐한 새로운 나의 룰>
- 적어도 7시까지는 뭘 하든 자습하고 움직이기.
'자바수업 기록' 카테고리의 다른 글
자바14강 super 키워드 / 은닉: 접근제한자, getter,setter메서드 (1) | 2022.10.11 |
---|---|
자바13강 Overriding, Overloading, this 키워드 (0) | 2022.10.07 |
자바수업 11강 배열을 담는 메서드, 객체와 클래스 (2) | 2022.10.05 |
2022-10-04 자바10강 메서드 (0) | 2022.10.04 |
자바 수업 2주차를 돌아보며. (4) | 2022.10.03 |
- Total
- Today
- Yesterday
- 배열 삭제
- 내포 클래스
- 배열과 탐색
- 국비학원 수업
- 다중 반복문
- input 스트림
- output 스트림
- 중앙정보처리학원
- 자바#자바수강기록
- 데이터베이스 수업
- nasted class
- api 활용
- 박인욱 강사님
- 국비지원 학원 수업 내용
- 국비학원
- 알람 시계 문제
- 자바
- 배열의 정렬
- JS ES6 문법
- 가비지 콜렉팅
- 강남 중앙정보처리학원
- 박문석 선생님
- 자바 api
- 자바스크립트 ES6 문법
- 오코노라멘
- interface #자바
- FOR문
- 강남역 12번 춣구
- 자바수업
- 조건문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |