[Java] String 파헤치기
·
Language/Java
* 개념 복습과 학습 정도를 파악하고자 포스팅합니다. 문자열(String)1. String?문자들의 연속(문자열)을 표현하는 클래스입니다.Java에서 String은 기본 타입이 아니라 참조 타입(클래스)이에요.그런데도 기본 타입처럼 new 없이 사용할 수 있는 이유는 Java가 편의 문법을 제공하기 때문이죠.// 문자열 리터럴 방식 (권장)String name = "홍길동";// new 키워드 방식String name = new String("홍길동");2. 리터럴 vs new (메모리 차이)리터럴 방식의 경우 String Pool에 저장돼서 같은 내용이면 같은 객체를 공유합니다.new로 만들면 매번 새 객체를 Heap에 생성합니다. 그래서 문자열 비교는 항상 equals()를 써야하죠String a =..
[Java]내부 클래스 정리
·
Language/Java
* 개념 복습과 학습 정도를 파악하고자 포스팅합니다 내부 클래스(Inner Class)1. 내부 클래스?클래스 안에 정의된 클래스.두 클래스가 긴밀하게 연관될 때 하나를 다른 하나의 내부에 정의해서 논리적으로 묶습니다.class Outer { // 외부 클래스 class Inner { // 내부 클래스 // ... }} 내부 클래스를 쓰는 이유는 세 가지가 있어요.캡슐화 강화: 외부에 노출할 필요 없는 클래스를 숨길 수 있습니다.코드 구조화: 관련된 클래스를 논리적으로 묶어 가독성을 높여요.외부 멤버 접근: 내부 클래스는 외부 클래스의 private 멤버에서 자유롭게 접근할 수 있습니다.내부 클래스는 선언 위치와 static 여부에 따라 4가지로 나누어..
[Java] 배열에 대해서
·
Language/Java
* 개념 복습과 학습 정도를 파악하고자 포스팅합니다! 배열(Array)1. 배열이란?같은 타입의 데이터를 연속된 메모리 공간에 순서대로 저장하는 자료구조.인덱스(0부터 시작)로 각 요소에 접근할 수 있습니다.2. 배열 선언과 생성배열을 만드는 방법이 세 가지가 있습니다!선언 후 생성선언과 동시에 생성선언과 동시에 초기화가장 먼저 선언 후 생성 방법을 정리하자면 이런식으로 작성할 수 있겠네요.// 방법 1 — 선언 후 생성int[] arr; // 선언 (참조변수만 만들어짐)arr = new int[5]; // 생성 (메모리 할당) 다음은 선언과 동시에 생성입니다.// 방법 2 — 선언과 동시에 생성int[] arr = new int[5]; // 기본값 0으로 초기화 마지막으로..
[Java] 추상 클래스 & 인터페이스 완전히 정리해버리기
·
Language/Java
* 개념 복습과 학습 정도를 파악하고자 포스팅합니다!* Claude, ChatGPT를 활용하여 이미지를 생성하고 활용합니다. 추상클래스와 인터페이스1. 추상 클래스란?직접 객체를 만들 수 없고, 상속을 통해서만 사용할 수 있는 클래스.공통된 기능은 구현해두고, 자식마다 다르게 구현해야 하는 메서드는 추상 메서드로 선언만 해둡니다. 현실 비유를 하자면, '동물'이라는 개념은 실제로 존재하지 않죠. 개, 고양이, 새처럼 구체적인 동물만 존재하는데 추상 클래스는 이런 개념을 코드로 표현하는 방법입니다.2. 추상 클래스 문법// 추상 클래스 선언public abstract class Animal { String name; // 일반 메서드 — 공통 기능 구현 public void eat() { ..
[Java] 상속 완전히 정리해버리기
·
Language/Java
* 개념 복습과 학습 정도를 파악하고자 포스팅합니다!* Claude, ChatGPT를 활용하여 이미지를 생성하고 활용합니다. 상속(Inheritance) 1. 상속이란?기존 클래스의 필드와 메서드를 새로운 클래스가 물려받은 것.코드를 재사용하고 계층 구조를 만들수 있어요. 현실 비유를 하자면, 부모님의 재산(필드, 메서드)을 자식이 물려받고, 자식은 거기에 자신만의 것을 추가할 수 있는거죠!상속의 핵심 키워드는 extends !class 자식클래스 extends 부모클래스 { }2. 상속 기본 코드// 부모 클래스public class Animal { String name; int age; public Animal(String name, int age) { this.name ..
[Java] 생성자 & 캡슐화 완전히 정리해버리기
·
Language/Java
* 개념 복습과 학습 정도를 파악하고자 포스팅합니다!* Claude, ChatGPT를 활용하여 이미지를 생성하고 활용합니다. 생성자와 캡슐화1. 생성자(Constructor) ?객체가 생성될 때 자동으로 호출되는 특수한 메서드.객체의 초기값을 설정하는 역할을 합니다!생성자의 특징은 세 가지에요. 메서드의 이름이 클래스 이름과 같아야 하고, 반환타입도 없고(void도 아님), new 키워드로 객체를 생성할 때 자동으로 호출됩니다.2. 기본 생성자 (Default Constructor)생성자를 하나도 정의하지 않으면 Java가 자동으로 매개변수 없는 기본 생성자를 만들어줘요.public class Person { String name; int age; // 생성자를 하나도 안 썼지만}// J..