본문 바로가기

Java29

[Java] 자바 클래스 자기참조 개념 정리 자바에서는 자기 자신 클래스 안에서 자기 클래스 이름으로 객체를 생성하는 것이 완전히 가능. :public class Example { public static void main(String[] args) { Example obj = new Example(); // 자기 자신 클래스의 객체 생성 obj.sayHi(); } public void sayHi() { System.out.println("Hi!"); }}이는 매우 일반적인 패턴💡 왜 자기 자신의 클래스를 생성할 수 있을까?자바에서 클래스는 틀(blueprint)이다. 이 틀을 이용해 객체(실체)를 만들어서 사용. 그 틀을 사용하는 위치가 그 틀 내부든 외부든 상관없다.Example o.. 2025. 4. 6.
[Java] 자바에서 main() 메서드 안에서 다른 메서드 호출 자바에서 main() 메서드는 프로그램의 시작점인데, 이 메서드는 static으로 선언되어 있음.그래서 main() 메서드 안에서 호출할 다른 메서드도 static으로 선언해야 사용할 수 있다.그 이유를 객체 생성 여부와 메모리 구조 관점에서 자세히 알아보자.🔍 왜 static으로 선언해야 할까?1. main() 메서드 자체가 static이기 때문public static void main(String[] args) { // 여기서 다른 메서드를 호출할 때...}자바는 프로그램을 실행할 때 main() 메서드를 호출.그런데 이때, 객체를 생성하지 않고 클래스만으로 접근 가능하도록 하기 위해 main()이 static으로 선언되어 있는 것임.즉, 자바가 프로그램 시작 시 new 클래스명()을 하지 않.. 2025. 4. 6.
[Java] Composition vs Inheritance — 언제 써야 하나? 🧠 Composition vs Inheritance — 언제 써야 하나?✅ 1. 기본 개념 정리📌 Inheritance (상속)"is-a" 관계일 때 사용한 클래스가 다른 클래스의 필드와 메서드를 상속받아 확장계층 구조를 형성하며 코드 재사용에 유리class Animal { void eat() { System.out.println("eating..."); }}class Dog extends Animal { void bark() { System.out.println("bark!"); }}✅ Dog is-a Animal → 올바른 상속📌 Composition (구성)"has-a" 관계일 때 사용클래스 내부에 다른 클래스의 인스턴스를 필드로 포함시켜 사용상속보다 유연하며, 역할 분리와 기능 조.. 2025. 4. 2.
[Java] Java에서 배열 생성과 객체 생성의 차이 정리 ✅ 핵심 요약Student[] students = new Student[10];🔹 배열 객체를 생성한 것 (크기 10짜리)🔹 아직 Student 객체는 하나도 존재하지 않음🔹 내부에는 null 값이 10개 들어 있음students[0] = new Student();🔹 진짜로 Student 객체를 생성해서 배열의 첫 번째 칸에 넣는 것✅ 1. 배열 생성: new는 "공간"만 만든다Student[] students = new Student[3];students는 참조형 배열이며,내부에는 Student 객체가 아닌 null이 3개 들어 있음:students = [null, null, null]즉, "객체를 담을 수 있는 칸만 만든 상태"이고,각 칸에 실제 객체를 넣으려면 따로 new 해야 함.✅ 2. .. 2025. 4. 2.
[Java] 문자열을 검사하는 방법 - String isEmpty(), isBlank(), null 체크 ✅ isEmpty(), isBlank(), null 체크 정리검사 방법설명예시 코드주의 사항str.isEmpty()문자열의 길이가 0이면 true"".isEmpty() → true" ".isEmpty() → falsestr == null이면 NullPointerException 발생str.isBlank() (Java 11+)문자열이 공백만 포함되거나 비어 있으면 true"".isBlank() → true" ".isBlank() → true"\n\t".isBlank() → truestr == null이면 NullPointerException 발생str == null문자열이 null 객체인지 확인str == null → true.isEmpty()나 .isBlank() 호출하면 예외 발생하므로 먼저 체크 필요.. 2025. 4. 1.
[Java] 객체(Object), 클래스(Class), 그리고 메서드(Method)와 속성(Property, 필드) ✅ 1. 클래스(Class)란?클래스는 객체를 만들기 위한 설계도입니다.하나의 클래스는 속성(필드)과 기능(메서드)를 포함합니다.class Car { String color; // 속성 (Property, Field) int speed; // 속성 void drive() { // 메서드 System.out.println("달립니다!"); } void stop() { System.out.println("멈춥니다!"); }}이 Car 클래스는 "자동차"라는 개념을 표현한 틀(설계도)입니다.✅ 2. 객체(Object)란?클래스는 설계도이고, 객체는 그 설계도를 바탕으로 만들어진 실제 실체입니다.클래스를 기반으로 new 키워드를 .. 2025. 3. 26.