본문 바로가기

자바의 정석24

[자바의 정석] 11. 컬렉션 프레임웍 - 컬렉션 프레임웍의 핵심 인터페이스 1. 컬렉션 프레임 웍(Collection Framework) 컬렉션 : 여러 객체(데이터)를 모아 놓은 것을 의미 프레임웍 : 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 프레임웍이란, ‘데이터 군(群)을 지정하는 클래스들을 표준화한 설계’를 뜻한다. 컬렉션(Collection)은 다수(多數)의 데이터(객체), 즉 데이터 그룹을, 프레임웍은 표준화된 프로그래밍 방식을 의미한다. JDK1.2부터 컬렉션 프레임웍이 등장 → 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화되었다. 컬렉션 프레임웍은 컬렉션, 다수의 데이터(객체)를 다루는 데 필요한 다양하고 풍부한 클래스들을 제공(객체를 다룬다 →저장, 삭제, 검색) *컬렉션 클래스 : 다수의 데이터를 저정할 수 있는 클래스(ex. vect.. 2023. 8. 6.
[자바의 정석] 09. java.lang패키지와 유용한 클래스 (2) - 유용한 클래스 2.1 java.util.Objects클래스 Object클래스의 보조 클래스 모든 메서드가 ‘static’이다. 객체의 비교나 널 체크(null check)에 유용하다. static boolean isNull(Object obj) //해당 객체가 널인지 확인 static boolean nonNull(Object obj) //isNull과 정반대의 일 즉, !Object.isNull(obj)와 같다. requireNonNull() // 해당 객체가 널이 아니어야 하는 경우 사용 static T requireNonNull(T obj) static T requireNonNull(T obj, String message) static T requireNonNull(T obj, Supplier messageSupp.. 2023. 8. 5.
[자바의 정석] 09. java.lang패키지와 유용한 클래스 (1) - java.lang패키지 java.lang패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 그렇기 때문에 java.lang패키지의 클래스들은 import문 없이도 사용할 수 있게 되어 있다.(String, System 클래스) 1.1 Object클래스 Object클래스의 멤버들은 모든 클래스에서 바로 사용이 가능하다. Object클래스는 멤버변수는 없고 오직 11개의 메서드만 가지고 있다.이 메서드들은 모든 인스턴스가 가져야 할 기본적인 것들 equals(Object obj) 객체자신(this)과 주어진객체(obj)를 비교한다. 같으면 true 다르면 false Object클래스의 equals()는 객체의 주소를 비교(참조변수 값 비교) 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으.. 2023. 8. 5.
[자바의 정석] 07. 객체지향 프로그래밍Ⅱ(3) 6. 추상클래스(abstract class) 6.1 추상클래스란? 미완성(부족한)설계도, 완성되지 못한 채로 남겨진 설계도를 말한다. 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라,단지 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다. 추상 클래스로 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다.(다른 클래스 작성에 도움을 주기 위한 것) 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다. 새로운 클래스를 작성할 때 아무 것도 없는 상태에서 시작하는 것보다는 완전하지는 못하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 것이 나음 ex. Tv는 여러 모델이 있지만 이 들의 설계도는 90%가 동일할 것이다. .. 2023. 8. 3.
[자바의 정석] 07. 객체지향 프로그래밍Ⅱ(2) 4. 제어자(modifier) 4.1 제어자란? 제어자(modifier)는 클래스, 변수 또는 메서드의 선언부와 함께 사용되어 부가적인 의미를 부여한다. 접근제어자 public, protected, default, private protected > (defaulte) > private [대상에 따라 사용할 수 있는 접근 제어자] 대상 사용 가능한 접근자 클래스 public, (default) 메서드 public, protected, (default), private 멤버변수 public, protected, (default), private 지역변수 없음 ✏️public 은 파일명과 일치하는 클래스만 사용 가능함 접근 제어자를 이용한 캡슐화 클래스나 멤버, 주로 멤버에 접근 제어자를 사용하는 이유는 클.. 2023. 8. 2.
[자바의 정석] 07. 객체지향 프로그래밍Ⅱ(1) 1. 상속 두 클래스를 부모와 자식으로 관계를 맺어주는 것 1.1 상속의 정의와 장점 상속이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.(코드의 재사용) 상속을 통해서 클래스를 작성하다 보면 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 ‘extends’와 함께 써주기만 하면 된다. class Child extends Parent { } //새로 작성하려는 클래스 Child ( 자손클래스 ) .. 2023. 8. 1.
[자바의 정석] 06. 객체지향 프로그래밍Ⅰ(2) 4. 오버로딩(overloading) 4.1 오버로딩이란? 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 4.2 오버로딩조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 반환 타입은 영향없다. 4.3 오버로딩 대표적인 예 오버로딩의 예로 가장 대표적인 것은 println메서드이다. println메서드를 호출할 때 매개변수로 지정하는 값의 타입에 따라서 호출되는 println메서드가 달라진다. 같은 일을 하지만 매개변수를 달리해야하는 경우에, 이와 같이 이름은 같고 매개변수를 다르게 하여 오버로딩을 구현한다. 4.4 오버로딩의 장점 기억하기 쉽고 이름도 짧게 할 수 있어서 오류의 가능성을 많이 줄일 수 있다. 메서드 기능 예측 가능, 메서드 이름 절약 가능 생성자 =.. 2023. 7. 31.
[자바의 정석] 06. 객체지향 프로그래밍Ⅰ(1) 1. 객체지향언어 1.2 객체지향언어 객체지향언어(설계) = 프로그래밍언어+객체지향 개념(규칙) 핵심개념 캡슐화 상속 추상화 다형성★ 갹체지향 언어의 주요 특징 코드의 재사용성이 높다. → 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드의 관리가 용이하다. → 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 신뢰성이 높은 프로그래밍을 가능하게 한다. → 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있다. 2. 클래스와 객체 2.1 클래스와 객체의 정의와 용도 클래스 왜 필요? 객체(제품)를 생성하기 위해 객체(제품) 왜 필요? 객체를 사용하기 위해 객체(TV)를.. 2023. 7. 29.
[자바의 정석] 05. 배열(Array) 1. 배열(array) 1.1 배열(array)이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 ‘배열(array)’이라고 한다. 여기서 중요한 것은 ‘같은 타입’이어야 한다는 것 int score1, score2, score3, score4, score5; ↓변수 대신 배열을 이용하면 다음과 같인 간단하게 처리할 수 있다. int[] score = new int[5]; // 5개의 int 값을 저장할 수 있는 배열을 생성한다. 변수 score는 배열을 다루는데 필요한 참조변수일 뿐 값을 저장하기 위한 공간은 아니다. 변수와 달리 배열은 각 저장공간이 연속적으로 배치되어 있다는 특징이 있다. 1.2 배열의 선언과 생성 배열의 선언 - 배열을 다루기 위한 참조변수의 선언 생성해야 실제로 저장공간.. 2023. 7. 28.
[자바의 정석] 04. 조건문과 반복문 1. 조건문 - if, switch 프로그램의 흐름(flow)를 바꾸는 역할을 하는 문장들을 ‘제어문(controlstatement)’이라고 한다. 제어문에는 ‘조건문과 반목문’이 있는데, 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다. 1.1 if문 if문은 가장 기본적인 조건문 만일(if) 조건식이 참(true)이면 괄호{} 안의 문장들을 수행하라. if (조건식) { //조건식이 참(true) 일 때 수행될 문장들을 적는다. } //조건식이 거짓(false)이면, if문 다음의 문장으로 넘어간다. 조건식 if문에 사용되는 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다. [자주 사용되는 조건식] 조건식 조건식이 참일 조건 90 2023. 7. 27.
[자바의 정석] 03. 연산자(Operator) 1. 연산자(operator) 연산을 수행하는 기호 1.1 연산자와 피연산자 연산자가 연산을 수행하려면 반드시 연산의 대상이 있어야 한다(피연산자) 피연산자로 상수, 변수 또는 식(式) 등을 사용할 수 있다. 연산자(operator) : 연산을 수행하는 기호(+,-,*,/등) 피연산자(poerand) : 연산자의 작업 대상(변수, 상수, 리터럴, 수식) “모든 연산자는 연산 결과를 반환한다” 1.2 식(式)과 대입연산자 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한것을 ‘식(式, expression)’이라고 한다. 식을 계산하여 결과를 얻는 것을 ‘식을 평가(evaluation)한다’고 한다. 1.3 연산자의 종류 [연산자의 기능별 분류] 종류 연산자 설명 산술 연산자 + - * / % >(x).. 2023. 7. 27.
[자바의 정석] 02. 변수(Variable) 학원 개강 전 자바의 정석 1권 3회독 2권 1회독으로 예습 후에 개강하였다. 프로젝트와 수료 후 자바 지식이 많이 휘발되어서 복습과 정리를 하기로 했다. 1. 변수(variable) 1.1 변수란? 단 하나의 값을 저장할 수 있는 메모리 공간 1.2 변수의 선언과 초기화 변수 타입 : 변수에 저장될 값이 어떤 타입 인지를 지정하는 것 변수 이름 : 변수에 붙인 이름(메모리 공간에 이름을 붙여주는 것) 변수에 값을 저장하고 저장된 값을 읽어올수도 있음 같은 이름의 변수는 존재할 수 없음 int(변수타입) age(변수이름); //age라는 이름의 변수를 선언 변수의 이름은 메모리 공간에 이름을 붙여주는 것이다. 그래야 그 이름을 이용해서 저장공간(변수)에 값을 저장하고, 저장된 값을 읽어오기도 할 수 있는.. 2023. 7. 26.