728x90
ch09. 중첩 클래스와 중첩 인터페이스 09-1. 중첩 클래스와 중첩 인터페이스 📌 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 하지만, 특정 클래스와 긴밀한 관계를 맺는 경우, 클래스 내부에 선언을 해준다. ➡️인스턴스 멤버 : 객체 생성없이 사용 불가능한 멤버 ( 객체마다 소속되는 멤버) ➡️정적 멤버 : 객체 생성없이도 사용 가능한 멤버 ( 클래스에 고정된 멤버) , 클래스로 바로 접근해서 사용 O [중첩 클래스] : Nested 네스티드 클래스 중첩 클래스 : 클래스 내부에 선언한 클래스 → 클래스 내부에 에 따라 → 선언된 위치에 따라 ◾ : 바깥 클래스 블록 내부에 클래스의 멤버로서 선언된 중첩 클래스 : 바이트 코드 이름 : 바깥 $ 멤버.class ✅인스턴스 멤버 클래스 : 바깥 객체가..
ch08. 인터페이스 08-1. 인터페이스 [인터페이스] : 개발코드와 객체 사이를 잇는 접점 역할 : 개발코드가 인터페이스의 추상 메소드 호출하면 // 인터페이스는 구현 객체의 재정의된 실체 메소드 호출하여 객체 실행 : 인터페이스로 매개하면 개발 코드 수정 없이 -> 다양한 객체들로 변경하며 사용 가능 [인터페이스 선언] : interface 키워드 public interface 인터페이스이름 { } : 인터페이스 구성멤버: 상수필드와 추상메소드 **** [public static final] 타입 상수이름 = 값; //생략해도 컴파일 과정에서 자동으로 붙음 //인터페이스 상수는 반드시 선언과 동시에 초기값 지정 **** [public abstract] 리턴타입 메소드이름(매개변수); //선언부만 작..
ch07. 상속 07-1. 상속 [클래스 상속] : 자식이 부모 클래스를 선택해서 부모 클래스의 필드와 메소드를 상속받는다. [상속 특징] 1) 다중 상속 불가능. extends 뒤에는 오직 하나의 부모클래스만 온다 2) 부모 클래스의 private 필드, 메소드 : 상속 제외 3) 다른 패키지에 존재하는 부모 클래스의 default 필드.메소드 : 상속 제외 [부모 생성자 호출] : 상속 이루어진 자식 클래스에서 자식 객체 생성 시 내부적으로 부모 객체가 먼저 생성되고, 자식 객체가 생성된다. : 생성자를 호출해야 객체가 생성된다. : 자식 객체 생성을 선언하면 부모 객체 생성을 먼저 하기 위해 자식 생성자의 맨 첫줄에서 부모 생성자 호출된다. **** : 컴파일러가 자식 생성자 첫줄에 super();..
ch06. 클래스 06-1. 객체 지향 프로그래밍과 클래스 [객체] : 자신의 속성을 가지고 있으면서 식별 가능한 것 : 객체는 속성과 동작으로 구성 (속성 = 필드, 동작 = 메소드) [객체 간의 상호작용] : 객체는 각각 독립적으로 존재하면서 다른 객체와 상호작용하며 동작함 : 객체 간 상호작용 = 객체 간의 메소드 호출 : 객체 상호작용 수단 = 메소드 : 매개값을 주고 메소드 호출한 뒤 메소드가 반환값을 이용하는 구조 : 즉, 매개값과 리턴값을 통해서 데이터를 주고받으며 상호작용 [객체 간의 관계] -집합 관계 : 부품 객체가 하나의 완성품 객체에 포함 되는 관계 -사용 관계 : 객체 간 상호작용하는 관계 -상속 관계 : 상위 부모 객체기반, 하위 자식 객체 생성 관계 [객체와 클래스] : 설계도..
ch05. 참조 타입 05-1. 참조 타입과 참조 변수 💡 자바의 데이터 타입: 기본 타입, 참조 타입 [기본 타입과 참조 타입] : ‘저장되는 값’이 다르다. 기본 타입 변수: 변수에 실제 값을 저장 참조 타입 변수: 변수에 객체의 번지를 저장하고, 번지를 통해 객체를 참조 [메모리 사용 영역] : JVM은 운영체제에서 할당받은 메모리 영역을 세부 영역으로 구분 메소드 영역 (모든 스레드가 공유) : JVM 시작할 때 생성 : 코드에서 사용되는 클래스(.class)들을 클래스 로더로 읽어서 클래스 별로 정적 필드, 상수, 메소드 코드, 생성자 코드 분류 저장 힙 영역 (객체와 배열 생성) : 여기에 생성된 객체와 배열은 스택영역 변수나 다른 객체의 필드에서 참조한다. : 만약 참조하는 변수, 필드 없으..
ch04. 흐름 제어문 (조건문과 반복문) 04-1. 조건문 : if문, switch문 🟦조건문 [if문] : 조건식의 결과값 (T or F)에 따라 블록 실행 여부 결정 [if-else문] : 조건식의 결과값이 T이면 if문 블록을, F이면 else문 블록 실행 [if-else if-else문] : 조건식 여러 개인 경우 사용 : else if문 사용은 제한 없음 : 여러 조건식 중 T값 갖는 블록 내부를 실행하고, 모든 조건식이 F이면 else문 실행 **Math.random()메소드** : 기본적으로 0.0
ch03. 연산자 03-1. 연산자와 연산식 [연산자] 산술 연산자 -> 산출 결과값 (숫자 타입) 논리, 비교 연산자 -> 산출 결과값 (boolean타입) 즉, T or F 연산식이 값 대신 사용되는 경우 int result = x + y; 연산식이 피연산자로 사용되는 경우 boolean result = (x + y) 연산 방향 따짐(2) 단, 대입 연산자 : 왼 오 방향으로 연산 수행** 우선순위가 다른 연산자의 연산식산술 > 비교 > 논리 > 대입 (2) 괄호() 사용해서 우선 처리할 연산식 묶어줌 (사용多) **(1) 연산자 우선순위..
ch02. 변수와 타입 02-1. 변수 [변수] 변수 : 값을 저장할 수 있는 메모리의 특정 공간에 붙이는 이름 -> 선언하면 공간을 갖고, 값을 저장하면 해당 변수 공간에 실질 값 저장된다. [변수 선언] : 메모리 해당 공간에 어떤 타입의 데이터를 저장할 것인지, 저장 공간의 타입과 이름을 선언 [변수 값 저장] : 대입 연산자를 사용해서, 앞서 선언으로 할당해놓은 메모리 공간 변수에 값을 저장. : 자바는 변수 값이 저장되지 않은 상태에서는 변수 생성이 안 된다. : 최초로 변수에 값이 저장되는 ‘변수 초기화’ 이후, 실질적으로 변수가 생성된다. [변수 사용] : 변수에 저장된 변수값을 이용해서 출력문이나 연산식을 수행하는 것. : 변수는 또 다른 변수에 대입하여 ‘값 복사’할 수 있다. [변수 사..
ch01. 자바 시작하기 1-1. 프로그래밍 언어와 JAVA [프로그래밍 과정] 💡 : 프로그래밍 언어 -> 소스코드 파일 작성-> 컴파일 -> 기계어 번역 -> 컴퓨터가 실행 [프로그래밍 언어] Java : 임베디드/웹/안드로이드/소프트웨어 개발 분야 C/C++ : 하드웨어 장치 제어 및 임베디드 sw분야 C++/C#: 데스크탑 앱, ASPNET기반 웹 sw분야 파이썬: 빅데이터 분석 및 머신러닝 sw분야 [자바 특징] 1) 모든 운영체제에서 실행 가능 2) 객체지향 프로그래밍 : 객체(부품)만들고, 객체들을 연결해서 더 큰 프로그램 완성 기법 3) 메모리 자동 정리 4) 무료 라이브러리 풍부 [자바 개발 도구: JDK] : Java Development Kit JDK는 자바로 sw개발 시 필요한 실행..