Java 102

Composition(포함관계)

포함관계(Composition)자동차와 엔진의 관계를 상속으로 표현하면 맞는 개념일까?포함 관계는 한 클래스가 다른 클래스를 포함하는 관계를 말합니다.자바에서 포함관계(Composition)는 한 클래스가 다른 클래스를 자신의 필드(멤버변수)로서 포함하는 것을 말한다.이 개념은 "has-a" 관계로도 알려져 있으며, 객체 간의 강한 연관성을 나타낸다.즉, 하나의 객체가 다른 객체 없이는 의미가 없을 때 포함 관계를 사용한다.  package basic.ch18;public class Engine { String name; int price; void start() { System.out.println("엔진이 시작됩니다"); } void stop() { Syst..

Java 2024.04.24

상속(Inheritance)

상속의 개념 상속(Inheritance)은 객체 지향 프로그래밍에서 중요한 개념 중 하나이다. 상속은 기존의 클래스를 확장하여 새로운 클래스를 정의하는 메커니즘을 말한다. 상속을 통해 기존 클래스의 속성과 메서드를 재사용하고 확장하여 새로운 클래스를 만들 수 있다. 이를 위하여 상속에서는 두 개의 클래스 필요하다. 1. 부모 클래스(Parent Class) 또는 슈퍼 클래스(Superclass) - 기존에 정의된 클래스로, 상속의 대상이 되는 클래스. 부모 클래스의 속성과 메서드를 자식 클래스로 상속한다. 2. 자식 클래스(Child Class) 또는 서브 클래스(Subclass) - 부모 클래스를 확장하여 새롭게 정의되는 클래스. 자식 클래스는 부모 클래스의 모든 속성과 메서드를 상속받는다. 오버라이드..

Java 2024.04.23

메서드 오버로딩

메서드 오버로딩의 개념 메서드 오버로딩(Overloading)은 같은 이름의 메서드를 여러 개 정의하는 것이다. 이때 메서드의 시그니처(signature), 즉 메서드 이름과 매개변수의 타입, 개수, 순서가 서로 달라야 한다. 메서드 오버로딩을 사용하면 같은 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있어 코드의 가독성을 높일 수 있다. package basic.ch16; /** * 메서드 오버로딩이란? * 같은 이름의 메서드를 여러 개 * 정의하는 것을 말한다. */ public class Calculator { // 덧셈 메서드 생성 public int add(int a, int b) { return a + b; } public double add(double a, double b) { ret..

Java 2024.04.23

배열의 활용(도서 관리 프로그램)

package basic.ch15; public class BooTest { public static void main(String[] args) { // 배열이란 - 연관된 데이터를 하나의 변수의 통으로 관리하고 싶다면 - 자료구조 // 배열을 사용할때 반드시 크기가 지정되어야 한다. Book[] books = new Book[10]; // 배열의 메모리 공간 선언 books[0] = new Book("플러터UI실전", "김근호"); books[1] = new Book("무궁화꽃이피었습니다", "김진명"); books[2] = new Book("흐르는강물처럼", "파울로코엘료"); books[3] = new Book("리딩으로리드하라", "이지성"); books[4] = new Book("사피엔스", ..

Java 2024.04.22

배열

자료구조의 개념 데이터를 어떻게 조직화하고 저장하며 접근할지를 결정하는 방법 1. 자료 구조의 특징 효율성 : 데이터를 효율적으로 저장, 검색, 삽입, 삭제 할 수 있어야 한다. 추상화 : 데이터의 논리적인 구조와 물리적인 구현을 분리하여 추상적으로 정의해야 한다. 재사용성 : 여러 응용 프로그램에서 재사용할 수 있도록 일반적이고 유연한 구조여야 한다. 2. 자주 사용되는 자료 구조 배열(Array) : 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 저장하는 자료 구조 List, Map, Set, 스택, 큐, 트리 등이 있다. 배열 연관된 데이터를 모아 통으로 관리하기 위해 사용하는 데이터 타입 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것..

Java 2024.04.22

static 메소드 (함수)

static 메소드 특정 클래스의 인스턴스에 속하지 않고 클래스 자체에 속한다. 따라서 객체를 생성하지 않고도 클래스 이름을 통해 직접적으로 호출이 가능하다. static 메서드는 클래스의 모든 인스턴스가 공유하며, 주로 유틸리티 기능이나 공통 동작을 제공하는 데 사용된다. 주요 특징 정리 객체 생성 없이 호출 가능 인스턴스 변수에 접근 불가 static 메서드는 객체의 인스턴스 변수에 직접적으로 접근이 불가능 하다. 왜냐하면 static 메서드는 객체가 생성되기 전에 호출될 수 있기 때문에 해당 객체의 상태를 알 수 없기 때문이다. 시나리오 코드 package basic.ex13; // 가지고 오다. 수입하다. import java.util.Random; public class LottoNumberMa..

Java 2024.04.22

static 변수

static 변수 프로그래밍에서 중요한 개념 중 하나. 클래스 변수 라고도 불리며, 클래스의 모든 인스턴스가 공유할 수 있는 변수이다. 즉, 개체가 동일한 static 변수의 값을 공유한다. 왜 클래스 변수 라고 불리는 걸까? 우리가 자바 프로그램을 실행 하면 프로그램을 수행하기 위해 운영체제로부터 할당받는 메모리들이 존재한다. 그 특성에 따라 영역 등이 존재하는데 그 구성요소들은 아래와 같다. 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할 때 마다 새로운 카드 번호 부여 회사에 사원이 입사할 때 마다 새로운 사번이 필요한 경우 은행에서 대기표를 뽑을 경우 (2대 이상) package basic.ch12; ..

Java 2024.04.19

this의 3가지 사용법

this란 인스턴스(객체) 자신의 메모리를 가리킨다. 생성자에서 또 다른 생성자를 호출할 때 사용할 수 있다. 자신의 주소(참조값, 주소값)를 반환 시킬 수 있다. package basic.ch11; public class Person { //this의 3가지 사용방법 // 1. this 는 자기 자신을 가리킨다(인스턴스의 주소) // 2. 생성자에 다른 생성자를 호출할 때 사용할 수 있다. // 3. 자신의 주소(참조값, 주소값)를 반환 시킬 수 있다. // 변수--> private private String name; private int age; private String phone; private String gender; // 1. // 생성자 public Person(String name, i..

Java 2024.04.19

접근 제어 지시자

접근 제어자 - 정보 은닉, 캡슐화 객체의 각각의 상태값은 직접 변수를 통해서 변경하는 것이 아닌 기능(행위, 메서드)을 통해서 변경하게 설계 해야 한다. 접근 제어 지시자란? 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 접근 제어 지시자의 종류 public —> 어디에서든 접근 가능 함. default —> 같은 패키지 내에서 접근 가능 protected ← 상속 배운 이후 private —> 해당 .java 안에서만 접근이 가능하다. 시나리오 코드 package basic.ch10; // 은행 public class Bank { // 아무것도 지정하지 않으면 default 제어 지시자이다. // private 클래스 안에서만 사용이 가능하다. Str..

Java 2024.04.17

객체지향 패러다임

객체지향 패러다임이란 객체지향 패러다임(Object-Oriented Paradigm)은 소프트웨어를 설계하고 구현하는 방법론 중 하나로, 실세계의 객체를 모델링하여 소프트웨어의 복잡성을 관리하고 코드의 재사용성을 높이는 데 중점을 둡니다. 이 패러다임의 핵심은 프로그램을 상호작용하는 객체들의 집합으로 보고, 각 객체는 자신의 데이터와 행위를 갖는 독립적인 엔티티로 취급하는 것입니다. "엔티티(Entity)"는 특정 속성과 행동을 가진 독립적인 단위 또는 객체를 의미합니다. 객체지향 패러다임의 주요 원칙 캡슐화(Encapsulation): 객체는 데이터(변수)와 그 데이터를 조작하는 함수(메서드)를 하나로 묶습니다. 이를 통해 데이터 구조와 데이터를 조작하는 방법을 결합하여 데이터의 추상화를 가능하게 하고..

Java 2024.04.16