Java 33

[Java] 08. 참조 타입

Chapter 1: 참조 타입값 타입과 참조 타입 비교참조 타입 변수의 선언과 해제초기화되지 않은 참조 타입 변수값 타입의 비교와 참조 타입의 비교같은 객체에 대한 여러 변수의 참조메소드 파라미터에 참조 타입 사용Chapter 2: enum 타입enum 타입 선언enum 값 비교enum 타입 메소드enum 생성자Chapter 3: 공통 참조 타입Exception 클래스String 클래스String 클래스 메소드, 연산자String 값 비교String 비교 연산자Chapter 4: 객체 계층 구조Object 타입공통 메소드Chapter 5: Java 패키지Java 패키지 개요java.lang 패키지java.util 패키지java.io 패키지기타 유용한 패키지Lab 8-1 참조 타입 변수를 선언하고 사용Ch..

Java 2024.08.28

[Java 연습 문제] 분수 계산(덧셈, 뺄셈, 곱셈) 코드

유클리드 호제법(Euclidean Algorithm) - 최대공약수 구하기2개의 자연수 또는 정식(整式)의 최대공약수(Greatest Common Divisor)를 구하는 알고리즘의 하나.2개의 자연수 a, b에 대해서 (a > b)일때, r = a%b라 하면 (a, b)의 최대 공약수는 (b, r)의 최대 공약수와 같다.(b, r)은 다시 r1 = b%r, 이는 (b, r)의 최대 공약수는 (r, r1)의 최대 공약수와 같다. 이를 오른쪽 수(나머지)가 0이 될때까지 반복한다.오른쪽 수(나머지)가 0이 되면 왼쪽 수가 최대 공약수다./* Rational.java */public class Rational { private int numerator; // 분자 private int deno..

[Java 연습 문제] 은행 계좌 문제

문제 1) BankAccount 클래스 캡슐화 - private, getter/setter문제 2) 계좌 번호 생성문제 3) withDraw, deposit 메소드 추가+ 추가 Lab 8-1) 계좌 이체 메소드: transferFrom+ 추가 Lab 9-1) 계정 유형 enum: AccountTypeimport java.math.*;import java.util.*;public class BankAccount { private long accountNumber; private String ownerName; private BigDecimal balance; // 연습 2) 계좌 번호 생성. private static long nextAccountNo; private st..

[Java] 07. 객체지향 프로그래밍 기본

Chapter 1: 클래스(Class)와 객체(Object)클래스(Class)객체(Object)추상화(Abstraction)Chapter 2: 캡슐화(Encapsulation)데이터와 메소드의 결합접근 가시성 제어왜 캡슐화를 해야 하는가?객체 데이터정적 메소드 사용Chapter 3: Java와 객체지향Hello, World Revisited단순한 클래스 정의새 객체 인스턴스화this 키워드포함된 클래스 생성포함된 클래스에 접근Lab 7-1 클래스를 만들고 사용Chapter 4: 객체지향 시스템 정의상속(Inheritance)클래스 계층구조(Hierarchy)단일/다중 상속다형성(Polymorphism)추상 클래스(abstract class)인터페이스(interface)Early/Late bindingCh..

Java 2024.08.27

[Java] 06. 배열

Chapter 1: 배열 개요Java에서 배열 표기법배열의 차원배열 요소에 접근배열의 경계 검사배열과 컬렉션 비교Chapter 2: 배열 생성배열 인스턴스 생성배열 요소 초기화다차원 배열 요소 초기화가변 길이 배열계산된 크기를 가진 배열 생성배열 요소 복사Chapter 3: 배열 사용배열의 크기배열 메소드메소드에서 배열 return배열을 파라미터로 전달명령줄 인자데모: 명령줄 인자 사용foreach 문에서 배열 사용Lab 6-1: 배열의 생성과 사용Chapter 1: 배열 개요- 배열은 요소를 순서대로 모아서 관리하기 위해 만들어진 자료구조다.- 배열의 모든 요소는 같은 타입을 가진다.- 인덱스 0부터 시작하는 각각의 요소에는 정수 인덱스를 사용해서 access한다.- 자바의 모든 Type을 배열로 만들..

Java 2024.08.25

[Java] 배열의 출력, 비교, 복사, 정렬

import java.util.Arrays;Arrays 클래스는 배열을 조작하는데 유용한 다양한 메소드들을 지원한다.Arrays.toString(), Arrays.equals(), Arrays.indexOf(), Arrays.indexOfRange(), Arrays.sort(), Arrays.binarySearch(), Arrays.copyOf(), Arrays.copyOfRange(), Arrays.fill() 0. 배열의 복제: clone()Java의 배열 인스턴스는 clone() 메소드 하나만을 지원한다.대신 java.util.Arrays 클래스에서 배열과 관련된 유용한 메소드를 제공한다./* clone() 예시 */int[] row = {1,2,3,4};int[] row2 = row.clone()..

Java 2024.08.25

[Java] 05. 메소드와 파라미터*

Chatper 1: 메소드메소드 선언메소드 호출return statement지역 변수값 returnChapter 2: 파라미터(Parameter)파라미터 선언과 호출파라미터 전달 매커니즘Pass by Value, Pass by Reference가변 길이 목록 파라미터 사용재귀 메소드 사용Chapter 3: 메소드 오버로딩(Method Overloading)메소드 오버로딩 정의메소드 시그니처오버로드된 메소드 사용Lab 5-2 메소드 오버로딩Chatper 1: 메소드 Function(함수): 특정 값을 넣으면 반드시 계산 결과의 값을 반환.  Procedure(프로시저): 값을 반환하지 않고 절차만을 수행.(C 이후의 언어들은 2가지의 경계가 모호해져서 return이 있어야 함수인데 void를 사용해서 반환..

Java 2024.08.23

[OOP] 객체지향 설계 원칙: SOLID

SOLID 객체 지향 프로그래밍(OOP) 및 설계의 5가지 원칙으로 프로그래머가 소스 코드를 읽기/확장이 용이하도록 하는 전략. Single responsibility principle (SRP, 단일 책임 원칙)한 클래스는 하나의 책임만 가져야 한다.Open/closed principle (OCP, 개방-폐쇄 원칙)소프트웨어 요소는 확장에는 열려 있으나, 변경에는 닫혀 있어야 한다.Liskov substitution principle (LSP, 리스코프 치환 원칙)프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.Interface segregation principle (ISP, 인터페이스 분리 원칙)특정 클라이언트를 위한 인터페이스 여러 개가 범용 인..

Java 2024.08.23

[OOP] 객체 지향 프로그래밍(OOP)의 정의와 4가지 특징 *

01. 객체지향이란?객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, '객체'들의 상호작용(메시지 주고받기, 데이터 처리 등)으로 프로그램 로직을 구성하는 프로그램 패러다임.1. 클래스 (Class)객체의 상태와 행위를 정의. (클래스의 객체를 만들기 위한 설계 도면)객체의 속성을 나타내는 데이터 필드(멤버 변수)와 행위를 나타내는 메소드(멤버 함수)로 구성. 2. 객체 (Object)클래스의 Instance로, 실제로 메모리에 할당된 데이터.상태를 나타내는 데이터와 행위를 나타내는 메소드를 가진다.  02. 객체 지향 프로그래밍(OOP)의 4가지 특징1. 추상화 (Abstraction)복..

Java 2024.08.23

[Java] 04. Statement와 Expression

Chapter 1: Statement 개요Statement block (문 블록)Statement(문)의 종류Chapter 2: Selection Statement (선택문)if Statement (if 문)Cascading if statement (Cascading if 문)switch statement (switch 문)Chapter 3: Iteration Statement (반복문)while statement (while 문)do statement (do 문)for statement (for 문)foreach statement (foreach 문)Chapter 4: Jump Statement (분기문)goto statement (goto 문)break / continue statement (brea..

Java 2024.08.22