컴퓨터 & 코딩/Java 25

[혼공학습단 10기][혼공자] 예외 처리

✓ 예외 클래스 💡 자바는 예외를 클래스로 관리한다. 예외가 발생하면 해당 예외 클래스로 객체를 생성한다. 예외의 두 종류 - 일반 예외: 컴파일러 체크 예외. 컴파일하는 과정에서 예외 처리 코드가 있는지 검사. (RuntimeException의 하위 클래스가 아님) - 실행 예외: 컴파일러 넌 체크 예외. 실행 시 예측할 수 없이 갑자기 발생. 컴파일 과정에서 예외 처리 코드가 있는지 검사하지 않는다.(RuntimeException 의 하위 클래스) 1) NullPointerException: 객체 참조가 없는 상태. null값을 갖는 참조 변수로 객체 접근 연산자(도트.) 를 사용했을 때 발생 2) ArrayIndexOutOfBoundsException: 배열에서 인덱스 범위를 초과했을 경우. 3) ..

[혼공학습단 10기][혼공자] 중첩 클래스 / 중첩 인터페이스 / 익명 객체

✓ 중첩 클래스 - 클래스 내부에 선언한 클래스. - 바이트코드 파일명: 멤버 클래스 - 바깥클래스$멤버클래스.class, 로컬 클래스 - 바깥클래스$1로컬클래스.class 1. 멤버 클래스 - 클래스의 멤버로서 선언. - 클래스나 객체가 사용 중이라면 언제든지 재사용이 가능하다 1) 인스턴스 멤버 클래스: static 키워드 없이 중첩 선언된 클래스. 인스턴스 필드, 메소드만 선언 가능하고 정적 필드와 메소드는 선언 할 수 없다. 바깥 클래스 객체를 생성해야만 사용할 수 있다. class A { class B { // 인스턴스 멤버 클래스 B() {} // 생성자 int fiels1; // 인스턴스 필드 void method1() {} // 인스턴스 메소드 } } // 사용시 A a = new A();..

[혼공학습단 10기][혼공자] 인터페이스

✓ 인터페이스 - 객체의 사용 방법을 정의한 타입 - 코드 변경 없이 실행 내용과 리턴값을 다양화할 수 있다 - 객체를 생성할 수 없기 때문에 생성자가 없다 [public] interface 인터페이스이름 { // 상수 //타입 상수이름 = 값; public int MAX_VOLUME = 10; // 추상 메소드 // 타입 메소드이름(매개변수, ...); public void setVolume(int volume); } 💡 추상 클래스와 추상 메소드 추상 클래스: 실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스 추상 메소드 - abstract 키워드 + 메소드의 선언부만 있고 메소드 실행 내용인 중괄호가 없는 메소드. - 하위 클래스가 반드시 실행 내용을 채우도록 강제됨. - 자식 클래스가 반드시..

[혼공학습단 10기][혼공자] 2주차 미션

✏️ 진도: Chapter 06 ~ 09 (클래스 / 상속 / 인터페이스 / 중첩 클래스와 중첩 인터페이스) 1. 객체 지향 프로그래밍 2. 상속 3. 인스턴스 멤버와 정적 멤버 4. 인터페이스 5. 중첩 클래스와 중첩 인터페이스 📖 기본 미션: p. 330 문제 5번 실행 결과 인증 화면 캡처하기 상속 관계에 따라 부모 클래스의 생성자가 먼저 호출된다 📚 선택 미션: 객체 지향 프로그래밍의 개념을 정리하기 [혼공학습단 10기][혼공자] 객체 지향 프로그래밍 ✏️ 객체 = 필드 (속성) + 메소드 (동작) 메소드는 객체들 사이의 상호작용 수단이다. 클래스는 객체를 생성하기 위한 필드와 메소드가 정의되어 있는 객체의 설계도이다. 클래스로부터 만들어 hianzhi.tistory.com

[혼공학습단 10기][혼공자] 인스턴스 멤버와 정적 멤버

✏️ 클래스 멤버: 필드, 메소드 인스턴스 멤버 : 객체마다 가지고 있는 멤버 정적 멤버 : 클래스에 위치시키고 객체들이 공유하는 멤버 ✓ 인스턴스 멤버 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드. 인스턴스 필드, 인스턴스 메소드라고 부른다. 인스턴스 필드는 객체마다 따로 존재하고 인스턴스 메소드는 메소드 영역에 저장되고 공유된다. 사용할 때는, 우선 객체(인스턴스)를 생성한 후 참조 변수로 접근한다. public class Car { // 필드 String model = "현대"; int speed = 40; // 생성자 Car(String model){ this.model = model; } // 메소드 void setSpeed(int speed) { this.speed = speed..

[혼공학습단 10기][혼공자] 객체 지향 프로그래밍

✏️ 객체 = 필드 (속성) + 메소드 (동작) 메소드는 객체들 사이의 상호작용 수단이다. 클래스는 객체를 생성하기 위한 필드와 메소드가 정의되어 있는 객체의 설계도이다. 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다 ✓ 객체 지향 프로그래밍 개발의 세 단계 ① 클래스 설계 ② 설계된 클래스를 가지고 사용할 객체를 생성(인스턴스화) ③ 생성된 객체를 이용 ⇨ 클래스 생성 "클래스이름.java"로 파일을 생성 (클래스 이름과 대소문자가 같도록) 일반적으로 소스 파일당 하나의 클래스를 선언하지만 2개 이상의 클래스 선언도 가능하다. (2개 이상의 클래스를 선언할 시에는 바이트 코드 파일(.class)이 클래스를 선언한 개수만큼 생성됨) public class Car { } ⇨ 객체 생성 new..

[혼공학습단 10기][혼공자] 참조 타입과 참조 변수, 배열, 열거타입

✓ 기본타입과 참조타입 ⇨ Primitive type 기본 타입: 실제 값이 변수 안에 저장 됨 (정수, 실수, 문자, 논리 리터럴) ⇨ Reference Type (Non-Primitive Type) 참조 타입: 객체의 번지를 참조하는 타입. 메모리의 번지를 변수 안에 저장함 (배열, 열거, 클래스, 인터페이스, String) ✏️ 메모리 사용 영역 Runtime Data Area ① 메소드 영역 Method Area: JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역. 클래스가 분류되어 저장된다. ② 힙 영역 Heap Area: 객체와 배열이 생성되는 영역. 만약 참조하는 변수나 필드가 없는 객체라면 Garbage Collector가 실행되어 자동으로 제거 된다. (코드로 직접 개체를 제거할 ..

[혼공학습단 10기][혼공자] 연산자

✓ 증감연산자 (++, --) i++ ++i 위 둘은 기본적으로 i = i + 1 이라는 점에서 동일하지만 다른 연산자와 사용될 때는 증감 연산자의 위치에 따라 결과가 다르게 나온다❗️ - 증감 연산자가 변수 앞에 있을 경우 (++i, --i) : 우선 변수값을 1증가 또는 1감소시킨 후에 다른 연산자를 처리 - 증감 연산자가 변수 뒤에 있을 경우 (i++, i--): 다른 연산자를 먼저 처리한 후 변수 값을 1증가 또는 1 감소시킴 int x = 1; int y = 1; int result1 = ++x + 10; // 12 int result2 = y++ + 10; // 11 result1 result2 ① x의 값 1 증가 (x = x + 1) y + 10 연산 (1 + 10) ② x + 10 연산 ..

[혼공학습단 10기][혼공자] 변수와 시스템 입출력

✓ 출력하기 println() : 출력 후 행 바꿈 print() : 단순 출력 printf("형식문자열", 값1, 값2, ...): 괄호 안의 첫 번째 문자열 형식대로 내용을 출력 ✏️ 형식문자열 ⇨ 구조: %[argument_index$] [flags] [width] [.precision] conversion ⇨ 각 자리의 기능: %[값의 순번] [생략 시 왼쪽 공백, -(오른쪽 공백), 0(공백을 0으로 채움)] [전체자릿수] [소수자릿수] 변환문자 ⇨ 변환 문자: d(정수), f(실수), s(문자열) 예시> int value = 123; System.out.printf("상품의 가격:%d원\n", value); // 상품의 가격:123원 System.out.printf("상품의 가격:%6d원\n"..

320x100