Java 7

[Java]객체지향 프로그래밍 II

1. 상속(inheritance) 1.1 상속이란?기존의 클래스 재사용하여 새로운 클래스 작성하는 것두 클래스를 조상과 자손으로 관계를 맺음 extends 키워드로 상속함 생성자와 초기화 블럭은 상속되지 않고 멤버만 상속자손 클래스의 멤버 개수 >= 조상 클래스의 멤버 개수(extends)  1.2 클래스간 관계상속관계(inheritance)공통부분은 조상에서 관리하고 개별부분은 자손에서 관리조상의 변경은 자손에 영향을 줌A는 B이다(is-a) 포함관계(composite)한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언작은 단위의 클래스를 먼저 만들고 이를 조합해 하나의 커다란 클래스 생성 A는  B를 가지고 있다.(has-a)  1.3 단일 상속(single inheritance)Java는 단..

Java 2025.04.06

[Java]객체지향 프로그래밍 I

1. 객체지향언어기존 프로그래밍 언어에 몇 가지 새로운 규칙을 추가하여 유기적으로 프로그램 구성객체(Object) 를 중심으로 프로그램을 설계하고 구현하는 프로그래밍 방식데이터(속성)와 이를 조작하는 메서드(기능)를 하나의 객체로 묶어 설계하는 방식 장점코드 재사용: 상속을 통해 기존 코드 활용 가능유지보수 용이: 캡슐화를 통해 코드 수정이 쉬움확장성 증가: 다형성을 통해 새로운 기능 추가 가능가독성 향상: 코드가 논리적으로 구성되어 이해하기 쉬움 단점절차지향(Procedural) 프로그래밍보다 구조가 복잡해짐객체 생성과 메시지 전달 과정(메서드 호출 등)에서 오버헤드 발생프로그램 실행 속도가 느려질 수 있음객체 간 의존성 증가 (결합도 문제)  객체지향의 4대 특징1. 캡슐화 (Encapsulation..

Java 2025.04.06

[Java]배열(array)

배열같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 배열의 길이는 고정자바는 배열이 객체로 heap영역에 저장됨(다른 언어는 보통 stack에 저장됨)2차원 이상이라도 실제 메모리상으로는 직선으로 저장 배열의 선언과 생성타입[] 변수이름; // 배열 선언변수이름 = new 타입[길이];// 배열 생성길이에는 int타입 범위의 0을 포함한 양의 정수만 들어갈 수 있음배열 index의 범위를 넘어서면 ArrayIndexOutOfBoundsException 에러 발생 자바에서는 JVM이 배열의 길이 별도로 관리배열이름.length를 활용해 배열의 길이를 읽을 수 있음(배열의 길이는 고정이므로 상수) 배열의 초기화// 방법 1int[] score = new int[5];score[0] = 50;score[..

Java 2025.03.25

[Java]제어문(조건문, 반복문)

조건문 if, switch if문if (조건식) { // 조건식 true일 경우 수행될 코드 작성} 블럭 내의 문장이 하나뿐일 경우 괄호{}를 생략 가능 if (score > 80) System.out.println("pass"); // 들여쓰기를 해도 괄호로 묶여있지 않으면 포함되지 않는다   if-else문if (조건식) { // 조건식이 true일 때 수행될 코드} else { // 조건식이 false일 때 수행될 코드}   if-else if문 if (조건식) { // 조건식1이 true일 때 수행될 코드} else if(조건식2) { // 조건식2이 true일 때 수행될 코드} else if(조건식3) { // 조건식3이 true일 때 수행될 코드} else { // 조건식이 f..

Java 2025.03.23

[Java]연산자(operator)

연산자 우선순위[최]우선(  ) 괄호[단]항~ , ! , + , -, ++ , --[산]술 * , / , % , + , - ,[쉬]프트> , >>>[관]계(비교)> , = , [논]리비트논리 : & , ^ , ! , | 인발논리 : && , ||[삼]항? :[대]입산술대입  =. += , -= , *= , /=, %=쉬프트대입 >=, >>>=비트논리대입 &=, != , ^=[콤]마, 콤마 최단/산쉬관논/삼대콤으로 암기해두면 복잡한 수식 있을 때 괄호를 줄일 수 있음이항 연산자에는 산술, 비교, 논리 연산자가 포함됨 단항 > 이항> 삼항단항, 대입연산자만 진행방향이 왼쪽이다 대입연산자는 항상 마지막  //단항연산자 : 증감 ==> ++, -- , ~ ,.....int x = 10, y;// y = x++;..

Java 2025.03.23

[Java]변수(variable)

변수(variable): 하나의 값을 저장하기 위한 공간 상수(constant): 값을 한번만 저장 가능한 공간리터럴(literal): 그 자체로 값 의미  변수의 타입(DataType) 기본형 데이터 - primitive data type Java compiler의해서 해석되는 data type8개(boolean, char, byte, short, int, long, float, double)의 실제 값 저장 참조형 데이터 - reference data typeJava API에서 제공되거나 Programmer에 의해서 만들어진class를 data type으로 Declaration하는 경우객체의 주소를 저장함   기본형 데이터(Primitive type)  종류별로 대각선에 있는 데이터 타입(boolea..

Java 2025.03.20

[Java]컴파일, 경로설정, 메모리 영역

JRE (Java Runtime Environment)자바 실행환경으로 자바 프로그램을 실행시키는데만 사용되는 패키지.class 를 실행함 JDK(Java Development Kit)자바 개발 도구로 JRE 패키지를 포함(실행 기능)javac, javadoc, jdb, jar 등 개발에 필요한 도구들도 포함(개발 기능) JVM(Java Virtual Machine)JRE에 포함되어 있으며 Java로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상머신Java는 JVM을 거쳐서 OS에 도달하기 때문에 운영체제에 독립적Java 소스코드 혹은 원시코드(*.java)는 javac 명령어를 통해 bytecode(*.class)로 컴파일함변환된 bytecode 는 JVM를 통해 OS가 해석..

Java 2025.03.19