본문 바로가기

JAVA/이재환의 자바 프로그래밍 입문26

[Java] Ch.14 String 클래스 String을 선언하는 두 가지 방법 자바는 문자열을 사용할 때 String 클래스 사용 문자열은 자바 코드에서 글자들을 큰따옴표로 묶은 값 ▼문자와 문자열 구분 자료형 기호 예시 문자 char 작은따옴표 'A', '가', '0' 문자열 String 큰따옴표 "A", "가", "0", "홍길동" 자바에서 문자열을 생성하는 방법은 다음과 같이 두 가지임 String str1 = new String("홍길동");// (1) String str = "전우치";// (2) 단지 생성하는 방법에만 차이가 있는 것이 아님 자바 내부에서 이 두 문자열을 생성하고 처리하는 방법도 차이가 많이 남 (1) new 연산자와 문자열 리터럴 매개변수가 있는 생성자를 이용해 객체를 힙에 만들고 그 참조 값을 변수에 대입함 이 때.. 2023. 10. 20.
[Java] Ch.13 패키지와 클래스 패스 클래스 패스 자바 가상 머신이 클래스를 실행시키는 방법 같은 폴더에서 클래스 파일을 찾아 실행 경로를 지정했다면 그 경로에 있는 클래스 파일을 찾아서 실행 경로 지정은 클래스 패스 이용 가능 경로 지정은 패키지 이용 가능 같은 폴더나 지정된 경로에서 클래스 파일을 찾지 못했다면 클래스 패스에 지정된 폴더에서 찾아 실행 1. Chapter13 프로젝트에 Apple.java와 Ex01_ClassPath.java 생성 public class Apple { public void showName() { System.out.println("My name is apple."); } } public class Ex01_ClassPath { public static void main(String[] args) { App.. 2023. 10. 20.
[Java] Ch.12 클래스의 상속 상속 자바 = 객체지향 언어 객체지향 언어의 가장 큰 특징 중 하나가 바로 상속 상속 클래스가 가지고 있는 멤버를 다른 클래스에게 계승시키는 것 상속한 멤버는 자식 클래스에서 정의하지 않아도 사용 가능 자식 클래스 내에서 멤버를 추가로 정의해서도 사용 가능 private으로 접근 제한이 되어 있는 멤버들은 서브 클래스로 상속되지 않음 상속의 장점 클래스 간의 전체 계층 구조를 파악하기 쉬움 재사용성 증대 확장 용이 유지보수 용이 ▼상속 관련 다양한 호칭 상속 대상 클래스 호칭 상속을 받은 클래스 호칭 슈퍼 클래스 ↔ 서브 클래스 부모 클래스 ↔ 자식 클래스 기반 클래스 ↔ 파생 클래스 조상 클래스 ↔ 자손 클래스 상위 클래스 ↔ 하위 클래스 class Marine extends Unit { } class.. 2023. 10. 20.
[Java] Ch.11 스태틱의 이해 스태틱 스태틱 변수 및 스태틱 메서드는 메서드 영역에 저장되며, 프로그램 시작 전에 로드되고 프로그램 종료 시 소멸됨 코드가 메서드 영역에 다 로딩되면 그 중에서 스태틱으로 지정된 변수와 메서드는 메서드 영역 내 스태틱 영역으로 옮겨짐 먼저 추려내져야 하는 변수와 메서드가 있다면 static 예약어 표시를 하여 메모리의 특정 영역에 따로, 그리고 미리 로딩시켜놓은 것 뿐임 이 때 스태틱 변수(쩡적 변수)는 값이 메모리에 로딩될 때 대입되고, 블록이 있다면 메모리 로딩 때 실행됨 메서드는 누가 호출해줘야 실행이 되는 것이기 때문에 로딩만 됨 전역 변수로 사용 메서드 영역 내 스태틱 영역의 변수 및 메서드는 어떤 객체에서도 접근해서 사용할 수 있음 (스태틱 변수를 전역 변수라고 부르기도 하는 이유) clas.. 2023. 10. 20.
[Java] Ch.10 자바의 메모리 모델 메서드 영역 프로그램 실행에 대한 코드, 스태틱 변수 및 메서드, 런타임 상수 풀이 메서드 영역에 생성됨 이 영역에 저장된 내용은 프로그램 시작 전에 로드되고 프로그램 종료 시 소멸됨 런타임 상수 풀(runtime constant pool)에는 컴파일 타임에 알려진 숫자 리터럴부터 런타임에 확인되어야하는 메서드 및 필드 참조에 이르기까지 여러 종류의 상수가 포함된 스택 영역 메서드가 호출되면 지역 변수, 매개변수가 프레임 형태로 생성되어 스택 영역으로 쌓였다가 사라짐 이 때 프레임 형태를 불투명한 빈 박스로 이해하면 됨 하나의 박스 안에서는 다른 박스 안의 내용을 알 수 없기에 프레임 영역을 벗어난 다른 메서드의 변수들은 서로 참조할 수 없음 힙 영역 클래스의 객체(인스턴스), 배열이 new 연산자에 의.. 2023. 10. 17.
[Java] Ch.9 클래스의 기초 객체(object) 우리가 표현할 수 있는 실제 세계의 모든 사물들 개념적인 객체 물리적인 객체 동물 개, 고양이, 호랑이, 곰 자동차 소나타, K5, SM5 클래스 프로그래밍에서 객체와 관련된 데이터와 처리 동작을 한데 모은 코드 뭉치 추상화 : 특징적인 데이터와 처리 동작을 추려내는 과정 명사적인 특징을 뽑아내는 추상화 과정 → 멤버 변수(필드) 추출 동사적인 특징을 뽑아내는 추상화 과정 → 멤버 함수(메서드) 추출 객체 목적 구분 객체 구분 추상화된 클래스 모델 탈 것 개인, 이륜 자전거, 오토바이 Bike 자동차 승용차, 버스, 트럭 Car 운송 수단 자동차, 배, 비행기 Vehicle // 클래스 정의 class Npc { // 필드 - 데이터 String name; int hp; // 메서드 .. 2023. 10. 17.