[Java] 기초정리 19. 컬렉션 프레임워크(3) - HashMap
·
Backend/Java
HashMap이란? 컬렉션 클래스 중 하나로 키-값 쌍을 저장하고 각 키를 통해 값을 빠르게 조회할 수 있는 클래스이다. ⭐ 컬렉션 프레임워크자바에서 데이터를 저장하고 조작할 수 있도록 도와주는 클래스와 인터페이스의 집합.컬렉션 인터페이스에는 List, Set, Queue, Map 등이 있다. 컬렉션 인터페이스를 구현한 클래스를 구현 글래스 라고 한다.ex) ArrayList, HashSet, PriorityQueue, HashMap 등HashMap(class)의 특징1. 키-값 저장 HashMap은 각 키에 대해 하나의 값을 저장한다. 각 키는 유일해야 하며, 같은 키를 사용하여 값을 업데이트할 수 있다.2. 순서 없음저장된 순서와는 상관없이 요소들이 저장된다.3. 빠른 조회 해시 테이블을 사용하여 키..
[Java] 기초정리 18. 컬렉션 프레임워크(2) - HashSet
·
Backend/Java
HashSet이란? 컬렉션 클래스 중 하나로 중복을 허용하지 않으며 순서가 없는 요소 집합을 제공  ⭐ 컬렉션 프레임워크자바에서 데이터를 저장하고 조작할 수 있도록 도와주는 클래스와 인터페이스의 집합.컬렉션 인터페이스에는 List, Set, Queue, Map 등이 있다. 컬렉션 인터페이스를 구현한 클래스를 구현 글래스 라고 한다.ex) ArrayList, HashSet, PriorityQueue, HashMap 등HashSet(class)의 특징1. 중복 불가능HashSet은 중복된 요소를 저장하지 않는다. 이미 존재하는 요소를 추가하려고 하면 추가되지 않음.2. 순서 없음요소의 순서를 보장하지 않는다. 저장된 요소의 순서가 입력된 순서와 일치하지 않을 수 있음.3. 빠른 조회해시 테이블을 사용하여 요..
[Java] 기초정리 17. 컬렉션 프레임워크(1) - ArrayList
·
Backend/Java
ArrayList란? 컬렉션 클래스 중 하나로 가변 크기를 가진 배열이라고 볼 수 있다.(추가, 삭제시 자동으로 크기를 조절)  ⭐ 컬렉션 프레임워크자바에서 데이터를 저장하고 조작할 수 있도록 도와주는 클래스와 인터페이스의 집합.컬렉션 인터페이스에는 List, Set, Queue, Map 등이 있다. 컬렉션 인터페이스를 구현한 클래스를 구현 글래스 라고 한다.ex) ArrayList, HashSet, PriorityQueue, HashMap 등 ArrayList(class)의 특징1. 동적 크기 조절ArrayList는 배열처럼 요소를 순서대로 저장하지만, 배열과 달리 크기를 자동으로 조절할 수 있다.2. 순서 유지요소의 순서를 유지. 요소를 추가한 순서대로 저장된다.3. 중복 가능같은 값을 가진 요소를 ..
[Java] 기초정리 16. 접근 제어자 - public, private, protected
·
Backend/Java
접근 제어자란? 클래스와 클래스 멤버(필드, 메소드, 생성자)를 선언할 때 접근 권한(범위)을 설정하는 키워드 접근 제어자 종류(default)publicprivateprotected(default)◆  같은 패키지에서만 접근 가능확실하게 같은 패키지에서만 이용할 때 public◆  모든 곳에서 접근 가능모든 곳에서 자유롭게 접근이 가능해야 하는 필드들(데이터를 처리하고 기능을 담당하는 메소드들) private◆  다른 클래스, 다른 패키지에서 접근 불가자신만 이용하는 경우나 데이터를 담는 변수들(게시글 제목, 회원의 아이디, 계좌번호, 학생의 이름 등) ⭐  private 필드는 직접 접근할 방법이 하나도 없기 때문에 무조건 public 메소드를 통해서 간접적으로 접근한다.        (값을 사용하는..
[Java] 기초정리 15. 업캐스팅, 다운캐스팅, instanceof
·
Backend/Java
캐스팅이란? 데이터 타입의 변환 즉 형변환을 말한다.- 업 캐스팅 : 자식 타입의 객체를 부모 타입으로 변환- 다운 캐스팅 : 업캐스팅 된 객체를 다시 자식 타입으로 바꿔주는 것업 캐스팅◆  부모 타입의 변수에 자식 클래스로 만들어진 객체를 담아주는 것  부모 타입의 변수에 자식 생성자를 호출 (업캐스팅)//Car:부모 / SuperCar:자식Car car = new SuperCar();  자식 생성자로 만들어진 객체를 부모 타입의 변수에 대입SuperCar supercar = new SuperCar();Car car = supercar;  부모 타입의 매개변수에 자식 객체를 넘길 때 void f(Car car){ }f(new SuperCar());다운 캐스팅◆  업 캐스팅 시 잘려나갔던 자식 클래스의 ..
[Java] 기초정리 14. 상속(inheritance) - 클래스 상속
·
Backend/Java
상속이란? 기존에 있던 클래스를 부모클래스(상위 클래스)로 정의하여 새로운 클래스(하위 클래스)에서 활용하는 것 ⭐  상속을 사용하는 이유- 기존에 선언된 클래스의 필드를 다른 클래스에서도 사용하고자 할 때- 클래스들을 만들다 보니 공통 요소가 보여서 묶은 후 상속시켜 주어서 클래스들을 편하게 만들고자 할 때상속 방법class A{ A의 필드(변수, 메소드)}class B extends A{ B의 필드}B obj = new B();⭐ obj 객체는 실제로 A의 필드와 B의 필드 둘 다 가지고 있다.      A : 부모 클래스 (상위 클래스, 슈퍼 클래스, 기반 클래스)      B : 자식 클래스 (하위 클래스, 서브 클래스, 파생 클래스)자식 클래스 생성자 호출 시 일어나는 일자식 클래스의 객체는 자..
[Java] 기초정리 13. 클래스 배열(객체 배열) - 클래스 배열 선언, 사용
·
Backend/Java
클래스배열이란? 클래스를 배열로 선언한 것 ⭐  클래스배열을 사용하는 이유- 객체를 여러개 선언해야 하는 경우에 배열 타입으로 한번에 선언한 후 사용한다.- 각 객체는 규칙성이 없기 때문에 규칙성을 부여하기 위해서 사용한다. 배열의 한 칸, 한 칸이 하나의 객체이다.클래스 배열 선언◆ 선언 방법 1클래스명[] 배열명 = { new 생성자(), new 생성자(), ...};//-----예시-----Car[] garage = { new Car("Ferrari", "Red", 70000), new Car("K7", "White", 4000), new Car(26000)}; ◆ 선언 방법 2클래스명[] 배열명 = new 클래스명[칸수];클래스 배열 사용◆ 각 칸이 객체이기 때문에 각 방으로 접근 후 .을 찍고 ..
[Java] 기초정리 12. 다형성(Polymorphism) - 오버로딩, 오버라이딩
·
Backend/Java
다형성이란? 하나의 메소드 또는 객체가 다양한 형태로 동작할 수 있는 성질을 의미한다. 대표적인 다형성의 구현방법으로는 오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅 등이 있다.Overloading(오버로딩) ◆ 같은 이름의 메소드를 넘쳐서 여러개 불러오는(선언하는) 기법  매개변수의 개수 혹은 타입이 다르다면 매개변수로 각각을 구분할 수 있기 때문에같은 이름의 메소드를 여러개 선언할 수 있다. 오버로딩 된 메소드를 사용할 시전달된 값의 타입 혹은 개수로 구분하여 알맞은 메소드가 자동으로 호출된다. 생성자도 메소드와 비슷한 성질을 띄고 있기 때문에 오버로딩이 가능하다아래 예시는 생성자가 오버로딩 된 경우이다.public class Car { String model; String color; int pric..
[Java] 기초정리 13. 생성자 - 생성자 선언, this
·
Backend/Java
생성자란? 클래스의 객체(인스턴스)가 생성될 때 자동으로 호출되는 메소드이다. 생성자는 메소드와 똑같이 호출 시 내부를 수행한다.하지만 객체를 생성해주고 호출 시 new 키워드와 함께 쓰이며생성된 객체의 주소값을 자동으로 리턴하기 때문에 메소드라고 부르지 않는다.(우리가 원하는 값으로 리턴을 할 수 없다.)생성자 선언클래스를 선언하면 기본적으로 생성자 하나를 만들어주고 우리 눈에는 보이지 않는다.이러한 생성자를 기본 생성자라고 하며,만약 직접 생성자를 선언하게 되면 기존에 있던 기본 생성자는 사라지게 된다.그래서 기본 생성자가 필요할 경우 기본생성자도 함께 적어줘야 한다.//생성자 (클래스 안에 생성된다)->(Car 클래스 안에 있음)public Car(String model, String color, ..
[Java] 기초정리 12. 클래스 - 클래스 선언, 사용
·
Backend/Java
클래스란? 여러 변수들과 메소드들을 둘다 관리하기 위해 설계하고 사용하는 틀 클래스는 주어로 만든다.모든 문장 맨 앞에는 클래스가 나오고, 영어는 맨 앞에 주어가 나온다.따라서 클래스는 주어이고, 대문자로 시작한다.  String food = “banana”; Monkey.eat(food); [주어] [동사] [목적어] 클래스는 타입이다.클래스는 추상적인 개념이고 이 클래스 안에는 필드가 존재한다.추상적인 개념은 사용할 수 없기 때문에 그 필드를 구체화시킨 대상이 필요하다.이러한 것들을 “객체”라고 부르고 영어로는 instance variable이라 부른다. instance는 예, 예시라는 뜻이고 추상적인 개념의 한 예시로서객체가 나오기 때문에 instance variable 이라 한다.(자동차인데 예를..