
💡 해당 클래스의 인스턴스 생성 시 어떤 생성자를 활용해서 인스턴스를 생성하더라도 공통적으로 실행 될 코드를 작성할 수 있는 블럭이다.인스턴스 변수클래스 변수 package com.ohgiraffers.section07.initblock;public class Application { public static void main(String[] args) { Product product = new Product(); // 순서대로 나오는지 확인 System.out.println(product); }}// 실행 결과초기화 블럭 실행...Product 기본생성자 호출됨...Product{name='아이뽕', price=0, brand=헬쥐}package com..

1. Singletonstatickeyword에 포함된다.객체가 여러 개 만들어져서 heap에 있는 하나의 값에 모두 접근하고 있다면,객체를 하나만 만들어서 주소값만 나눠주자!!!package com.ohgiraffers.section06.singleton;public class Application { public static void main(String[] args) { /* 수업목표. 싱글톤 패턴에 대해 이해하고 이를 구현할 수 있다. */ /* 필기. * singleton pattern이란? * 애플리케이션이 시작되고 난 후 어떤 클래스가 최초 한번만 메모리에 할당(객체)되고 * 그 메모리에 인스턴스가 단 하나만 ..

1. 오버로딩이란?💡 동일한 클래스 내에는 동일한 이름의 생성자 혹은 메소드를 작성하지 못한다. 하지만 매개변수의 타입, 갯수, 순서를 다르게 작성하면 서로 다른 생성자나 메소드로 인식하기 때문에 동일한 이름의 생성자나 메소드를 여러 개 작성할 수 있게 해준다.package com.ohgiraffers.section05.overloading;public class OverloadingTest { /* 수업목표. 오버로딩(Overloading)에 대해 이해할 수 있다. */ /* 필기. * 메소드의 시그니처? * public void method(int num){}이라면, 메소드의 메소드명과 파라미터 선언부 부분을 * 메소드의 시그니처(signature)라고 한다..
💡 인스턴스를 생성할 때 초기 수행할 명령이 있는 경우 미리 작성해두고, 인스턴스를 생성할 때 단 한 번 호출되는 함수. 지금까지 인스턴스를 생성할 때 클래스명 레퍼런스변수 = new 클래스명(); 이렇게 사용해왔다. new 뒤에 클래스명은 사실 생성자(constructor)라는 메소드를 호출하는 구문. 생성자 함수에 매개변수가 없는 생성자를 기본생성자(default constructor)라고 하며, 기본 생성자는 compiler에 의해 자동으로 추가되기 때문에 지금까지 명시적으로 작성하지 않고 사용할 수 있었다.Constructor(생성자)package com.ohgiraffers.section04.constructor;public class Application { public static v..

1. 추상화란?💡유연성을 확보하기 위해 공통적인 것을 추출하고 공통적이지 않은 것을 제거하는 것을 의미.추상화 과정을 통해 객체(Object)가 도출이 되며, 이러한 객체를 생성하기 위해 클래스를 설계.즉, 추상화는 현실세계의 복잡한 사건을 단순화하여 새로운 객체 지향 세계를 창조해나가는 과정.2. 행위를 중심으로 추상화2-1. 시스템 요구사항1. 카레이서는 시동걸기, 엑셀레이터 밟기, 브레이크 밟기, 시동 끄기를 할 수 있다.2. 자동차는 시동걸기, 앞으로가기, 멈추기 , 시동끄기를 할 수 있다.3. 자동차는 처음에 멈춘 상태로 대기하고 있는다.4. 카레이서는 먼저 자동차에 시동을 건다. 이미 걸려있는 경우 다시 시동을 걸 수 없다.5. 카레이서가 엑셀레이터를 밟으면 시동이 걸린 상태일 경우 자동차는..
1. 캡슐화💡 유지보수성 증가(낮은 결합도)를 위해 필드의 직접 접근을 제한하고, public 메소드를 이용하여 간접적으로(우회해서) 접근하여 사용할 수 있도록 클래스를 작성하는 기법.클래스를 작성할 시 특별한 목적이 아닌 이상 캡슐화가 기본적인 원칙으로 사용되고 있다. 1-1. 필드에 직접 접근 시 발생할 수 있는 문제점1-1-1. 필드에 올바르지 않는 값이 들어가도 통제가 불가능하다.package com.ohgiraffers.section02.encapsulation.problem1;public class Application { public static void main(String[] args) { /* 수업목표. 필드에 직접 접근하는 경우 발생할 수 있는 문제점을 이해할 수 ..

객체 → 객체라는 내용, 여러분상호작용 → 설명한다.1. 클래스란?💡 서로 다른 타입의 데이터와 메소드를 정의하여 사용자 정의의 타입을 만들 수 있는데, 이것을 클래스라고 한다.즉, 클래스는 사용자 정의의 자료형이다.2. 객체란?2-1. 객체지향프로그래밍(OOP)란?💡 OOP(Object Oriented Programming language): 추상화, 캡슐화, 상속, 다형성을 적용하여 유지보수성을 고려한 응집력 높고 결합도 낮은 (유지 보수를 위함..) 객체 위주의 개발 방식을 적용한 프로그래밍을 말한다. 💡 현실 세계의 모든 사건(event)는 객체와 객체의 상호작용에 의해 일어난다는 세계관을 프로그램을 만들 때 이용하여 새로운 세계를 창조하는 방법론객체가 서로 상호작용을 하며 사건이 일어난다는..

1. 배열 개요→ 나중에는 컬렉션을 사용!!1-1. 배열 정의 및 사용 이유1-1-1. 배열이란?💡동일한 자료형(Data Type)의 묶음(→이 묶음을 인지시킨다.)연속된 메모리(주기억장치, RAM) 공간에 값을 저장하고 사용하기 위한 용도로 사용배열은 heap 영역에 new 연산자를 통해 할당 배열의 길이는 최초 선언한 값으로 "고정", 인덱스를 통해 데이터에 접근 가능1-1-2. 배열을 사용하는 이유배열을 사용하지 X → 동일한 자료형을 가진 다양한 값들을 각각의 변수에 저장하여 사용(모든 변수의 이름을 사용자가 관리)연관된 데이터를 저장하기 위한 변수의 선언을 줄여주며, 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리package com.ohgiraffers.section01.array;imp..