Backend 8

[Java] 객체지향 프로그래밍 2(Object-oriented Programming 2) - TIL 221221

📖 자바의 정석 Chapter 07 참고 5. 다형성(polymorphism) 5.1 다형성이란? 객체지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 두 클래스가 서로 상속관계에 있을 경우, 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조하도록 하는 것도 가능하다. 같은 타입의 인스턴스지만 참조변수의 타입에 따라 사용할 수 있는 멤버의 개수가 달라진다. 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스 멤버 개수보다 같거나 적어야 한다. // 생성된 인스턴스를 다루기 위해서 인스턴스의 타입과 일치하는 타입의 참조변수를 사용했다. // 인스턴스의 타입과..

Backend/Java 2022.12.21

[Java] 객체지향 프로그래밍 2(Object-oriented Programming 2) - TIL 221220

📖 자바의 정석 Chapter 07 참고 4. 제어자(modifier) 4.1 제어자란? 제어자(modifier): 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자는 하나의 대상에 대해서 여러 제어자를 조합해 사용하는 것이 가능하다 단, 접근 제어자는 한번에 네 가지 중 하나만 선택해서 사용할 수 있다. 접근 제어자: public, protected, default, private 그 외: static, fianl, abstract, native, transient, synchronized, volatile, strictfp 4.2 static - 클래스의, 공통적인 클래스변수(static멤버변수)는 하나의 변수를 모든 인스턴스가 공유하기 때문에 인스턴스에 관계없이 ..

Backend/Java 2022.12.20

[Java] 객체지향 프로그래밍 2(Object-oriented Programming 2) - TIL 221219

📖 자바의 정석 Chapter 07 참고 1. 상속(inheritance) 1.1 상속의 정의와 장점 상속: 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. 상속을 통해 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가와 변경이 용이하다. class Child extends Parent { // ... } 상속받고자 하는 클래스 이름을 키워드 'extends' 뒤에 함께 써준다. 이 두 클래스는 서로 상속 관계에 있다고 하며, 상속해주는 클래스를 '조상클래스', 상속 받는 클래스를 '자손 클래스'라 한다. 조상 클래스: 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스 자손 클래스: 자식(chil..

Backend/Java 2022.12.19

[Java] 객체지향 프로그래밍 1(Object-oriented Programming 1) - TIL 221215

📖 자바의 정석 Chapter 06 참고 4. 오버로딩(overloading) 4.1 오버로딩이란? 오버로딩(overloading): 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것. (=메서드 오버로딩(method overloading)) 오버로딩(overloading)의 사전적 의미는 '과적하다'. 즉, 많이 싣는 것을 뜻한다. 4.2 오버로딩의 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있다. 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 4.3 오버로딩의 예 // 오버로딩 X // 두 메서드는 매개변수의 이름만 다를 뿐 매개변수의 타입이 같기 때문에 오버로딩이 성립하지 않는다..

Backend/Java 2022.12.15

[Java] 객체지향 프로그래밍 1(Object-oriented Programming 1) - TIL 221214

📖 자바의 정석 Chapter 06 참고 3. 변수와 메서드 3.7 JVM의 메모리 구조 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받는다. JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리하는 그 중 3가지 주요 영역은 method area, call stack, heap이다. (~~~p.261 jvm 메모리 구조 이미지 넣기) 1. 메서드 영역(method area) 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이 곳에 저장한다. 이 때, 그 클래스의 클래스 변수(class variable)도 이 영역에 함께 생성된다. 2. 힙(heap) 인..

Backend/Java 2022.12.14

[Java] 객체지향 프로그래밍 1(Object-oriented Programming 1) - TIL 221213

📖 자바의 정석 Chapter 06 참고 1. 객체지향언어 1.1 객체지향언어의 역사 모의실험(simulation)을 위해 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하려는 노력이 객체지향이론을 탄생시켰다. 객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물 간의 상호작용이다.'라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상세계를 구현하고 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있었다. 객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 점차 구체적으로 발전되었다. 프로그램 규모가 점점 커지고 사용자들의 요구가 빠르게 변화함에 따라 절차적 언어..

Backend/Java 2022.12.13

[Java] 변수(Variable) - TIL 221209

📖 자바의 정석 Chapter 02 참고 2. 변수의 타입 기본형과 참조형 자료형은 크게 '기본형', '참조형' 두 가지로 나눌 수 있다. 기본형(primitive type): 계산을 위한 실제 값(data)를 저장한다. 모두 8개 e.g. 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 참조형(reference type): 객체의 주소(address)를 저장한다. e.g. 기본형 8개를 제외한 나머지 타입. => 기본형의 종류를 얘기할 때는 '자료형(data type)', 참조형 변수의 종류를 구분할 때는 '타입(type)'이라는 용어를 사용한다. '타입(type)'은 '자료형(data type)'을 포함하는 넓은 의미의..

Backend/Java 2022.12.10

[Java] 변수(Variable) - TIL 221208

📖 자바의 정석 Chapter 02 참고 1. 변수(variable) 1.1 변수란? 변수: 단 하나의 값을 저장할 수 있는 메모리 공간. 새로운 값을 저장하면 기존 값은 사라진다. 1.2 변수 선언과 초기화 //int: 변수타입, age: 변수이름 int age = 25; //변수 age를 선언하고 25로 초기화한다. 변수를 선언하면 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보되고, 이 저장공간은 '변수이름'을 통해 사용할 수 있게 된다. 변수를 사용하기 전에는 반드시 변수를 '초기화(initialization)'해야 한다. 변수의 초기화: 변수를 사용하기 전에 처음으로 값을 저장하는 것. 지역변수는 사용되기 전에 반드시 초기화해야 한다. 클래스변수와 인스턴스변수는 초기화를 생략할 ..

Backend/Java 2022.12.09