Java 67

[인프런] 객체 지향 프로그래밍

데이터와 기능을 하나로 묶어서 하나의 클래스에 담아서 사용한다. 프로그램을 작성하는 절차도 중요하지만 음악 플레이어라는 하나의 개념을 객체로 온전하게 만드는 것이 더 중요하다. 그러기 위해서는 프로그램의 수행 순서보다는 음악 플레이어 클래스를 만드는 것 자체에 집중해야한다. 음악 플레이어가 어떤 속성을 가지고 어던 기능을 제공하는지에 초점을 맞추어야 한다. public class MusicPlayer { int volume = 0; boolean isOn = false; void on() { isOn = true; System.out.println("음악 플레이어를 시작합니다."); } void off() { isOn = false; ..

Java 2024.05.21

[인프런] 절차 지향 프로그래밍

프로그래밍 방식은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다.절자지향프로그래밍- 절차 지향 프로그래밍은 이름 그대로 절차를 지향한다. 실행 순서를 중요하게 생각하는 방식이다.- 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 객체지향프로그래밍- 객체를 중요하게 생각하는 방식이다.- 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다.=> 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 객체 안에 함께 포함되어 있다. 절차지향 프로그래밍으로 코드 구성public class MusicPlayerMain1 { public static void main(String[] args)..

Java 2024.05.21

[인프런] null과 NullPointerException

null참조형 변수에는 항상 객체가 있는 위치를 가리키는 참조값이 들어간다. 그런데 아직 가리키는 대상이 없거나, 가리키는 대상을 나중에 입력하고 싶으면 null이라는 특별한 값을 넣어둘 수 있다.null은 값이 존재하지 않는, 없다는 뜻이다. public class Data { int value;}public class NullMain1 { public static void main(String[] args) { Data data = null; System.out.println("1.data = " + data); data = new Data(); System.out.println("2.data = " + data); data =..

Java 2024.05.20

[인프런] 변수와 초기화

변수의 종류- 멤버 변수 : 클래스에 선언- 지역 변수 : 메서드에 선언, 매개 변수도 지역 변수의 한 종류이다. 지역 변수는 이름 그대로 특정 지역에서만 사용되는 변수라는 뜻이다. 변수의 값 초기화멤버 변수 : 자동 초기화인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화된다.숫자(int)=0, boolean=false, 참조형= null개발자가 초기값을 직접 지정할 수 있다.지역변수 : 수동 초기화지역변수는 항상 직접 초기화 해야 한다.public class InitData { int value1; // 초기화 하지 않음 int value2 = 10; // 10으로 초기화}public class InitMain { public static void main(String[] a..

Java 2024.05.20

[인프런] 기본형과 참조형

변수의 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 변수에 직접 넣을 수 있는 기본형과 객체가 저장된 메모리의 위치를 가르키는 참조값을 넣을 수 있는 참조형으로 분류할 수 있다.- 기본형 ( Primitive Type ) : int, long, double처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 한다.- 참조형 ( Reference Type ) : Student student, int [] students와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다. 참조형은 객체 또는 배열에 사용된다.- 숫자 10, 20과 같이 실제 사용하는 값을 변수에 담을 수 있고, 해당 값을 바로 사용할 수 있다.- 참조형은..

Java 2024.05.20

[인프런] 배열

배열 도입 - 시작클래스와 객체 덕분에 학생 데이터를 구조적으로 이해하기 쉽게 변경할 수 있었다. 하지만 학생을 출력하는 부분에 있어 새로운 학생이 추가될 때마다 출력되는 부분을 함께 추가해야한다는 불편함이 있다.배열을 사용하면 특정 타입을 연속한 데이터 구조로 묶어서 편리하게 관리할 수 있다.Studnet 클래스를 사용한 변수들도 Student 타입이기 때문에 학생도 배열을 사용해서 하나의 데이터 구조로 묶어서 관리할 수 있다. 배열에 참조값 대입- Stundent 변수를 2개 보관할 수 있는 사이즈 2의 배열을 만든다.- Student 타입의 변수는 Student 인스턴스의 참조값을 보관한다. Student 배열의 각 항목도 Student 타입의 변수일 뿐이다. 따라서 Studnet 타입의 참조값을 ..

Java 2024.05.20

[인프런] 클래스의 사용 및 크래스, 객체, 인스턴스의 정리

객체에 값 대입객체가 가지고 있는 멤버 변수에 값을 대입하려면 먼저 객체에 접근해야 한다.객체에 접근하려면 . 키워드를 사용하면 된다. 이 키워드는 변수에 들어있는 참조값을 읽어서 메모리에 존재하는 객체에 접근한다. 객체 값 읽기. 키워드를 통해 참조값을 사용해서 객체에 접근한 다음 원하는 작업을 하면 된다. 클래스 - Class클래스는 객체를 생성하기 위한 틀 또는 설계도이다. 클래스는 객체가 가져야할 속성과 기능을 정의한다. - 틀 : 붕어빵 틀은 붕어빵이 아니다. 붕어빵이 나왔으면 좋겠다고 만드는 틀일 뿐 실제 먹을 수 있는 것이 아니다. 실제 먹을 수 있는 붕어빵을 객체 또는 인스턴스라 한다.- 설계도 : 실제 존재하는 것이 아니라 개념으로만 있는 것이다.객체 - Object객체는 클래스에서 정의..

Java 2024.05.20

문자열 포함 여부 확인 ( contains , containsIgnoreCase )

1. contains : 'String' 클래스의 메서드로 대상 문자열에 특정 문자열이 포함되어 있는지를 검사                     대소문자를 구별하여, 정확히 일치하는 문자열만을 찾음2. containsIgnoreCase : 대소문자에 상관 없이 특정 문자열이 포함되어있는지 확인 가능contains를 사용하여 대소문자 구별 없이 문자열을 검사하고 싶다면, 문자열을 모두 소문자나 대문자로 변환한 다음 contains 메서드를 사용한다.

Java 2024.05.01

Java 문법) 컬렉션 프레임워크 - Map 컬렉션

Map 컬렉션 : 키와 값으로 구성된 엔트리 객체를 저장 키는 중복 저장이 안되지만, 값은 중복 저장 가능 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체 범주 메서드 또는 기능 설명 객체 추가 V put(K key, V value) 지정된 키(key)와 값(value)을 매핑, 이전 값 대체 객체 검색 V get(Object key) 주어진 키(key)에 대응하는 값 반환 boolean containsKey(Object key) 주어진 키(key)가 맵에 존재하는지 확인 boolean containsValue(Object value) 주어진 값(value)가 맵에 존재하는지 확인 V get (Object key) 주어진 키(key)에 대응하는 값을 반환 객체 삭제..

Java 2023.11.03

Java 문법) 컬렉션 프레임워크 - Set 컬렉션

Set 컬렉션 : 수학의 집합 개념 순서를 유지하지 않고 저장, 중복 저장 불가, 하나의 null만 저장 가능 (1) HashSet : hashCode( ) 메서드의 리턴값이 같고, equals( ) 메서드가 true를 리턴하면 동일한 객체라고 판단하고 중복 저장하지 않음 데이터 중복을 방지하고 고유한 요소를 관리하기 위한 용도로 사용 예제 1 ) public class Set01 { public static void main(String[] args) { // 상속관계 // Object --> Set --> HashSet Object[] objArr = {"1","2","2","3","3","3","4","4","4","4"}; Set set1 = new HashSet(); for(Object obj ..

Java 2023.11.03

Java 문법) 컬렉션 프레임워크 - List 컬렉션

컬렉션 프레임 워크란? : 자료구조를 사용해서 객체들을 효율적으로 관리할 수 있도록 인터페이스와 구현 클래스를 java.util 패키지에서 제공하는 것을 총 칭하는 말 java.util 패키지에 포함 인터페이스를 통해 다양한 컬렉션 클래스 이용 컬렉션 : 객체의 저장 프레임워크 : 사용 방법을 정해 놓은 라이브러리 기능 메서드 설명 요소 추가 boolean add(E element) 리스트의 끝에 요소(element) 추가 void add(int index, E element) 주어진 위치(index)에 요소(element) 삽입 set(int index, E element) 주어진 인덱스의 개체를 새로운 객체로 바꿈 요소 검색 E get(int index) 지정된 위치(index)에 있는 요소를 반환 ..

Java 2023.11.03

Java 문법 ) Object클래스 - getClass

Object 클래스 메서드 중 public Class getClass ( ) 메서드는 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 반환한다. 예제 )public class GetClass05 { public static void main(String[] args) { Card c1 = new Card("HEART", 10); // getClass() : 객체 얻어오기 Class cObj1 = new Card().getClass(); // 재정의한 것은 가져오지 않는다. Class cObj2 = c1.getClass(); try { Class cObj3 = Card.class.forName("Ca..

Java 2023.11.02

Java 문법 ) Object클래스 - clone

Object 클래스 메서드 중 protected Object clone ( ) 메서드는 객체 자신의 복사본 반환한다. 예제 ) class Point implements Cloneable{ int x; int y; Point(int x, int y) { this.x = x; this.y = y; } @Override public String toString() { return "x = " + x + ", y = " + y; } public Object clone() { Object obj = null; try { obj = super.clone();// 그냥 clone 하면 내꺼 호출, 지금은 부모꺼 호출 } catch (CloneNotSupportedException e) { e.printStackTra..

Java 2023.11.02