Java 30

[Java] 중첩 클래스, 내부 클래스

클래스안에 클래스를 중첩해서 정의할 수 있는데, 이것을 중첩 클래스라고 한다.중첩 클래스는 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스내부 클래스 종류내부 클래스지역 클래스익명 클래스중첩 클래스를 정의하는 위치는 변수의 선언 위치와 같다.변수의 선언 위치정적 변수(클래스 변수)인스턴스 변수지역 변수중첩 클래스의 선언 위치정적 중첩 클래스내부 클래스지역 클래스 class Outer { ...//정적 중첩 클래스static class StaticNested {...}//내부 클래스 class Inner {... }}내부 클래스는 앞에 static 없이 class를 사용한다.정적 충첩은 정적 변수와 같이 앞에 static 을 붙인다.class Outer {public void..

JAVA 2025.02.09

[Java] 래퍼 클래스

Wrapper Class: 기본형을 감싸서 만드는 클래스를 래퍼 클래스라고 한다. 기본 타입: int, double, boolean, 등등Wrapper 클래스: Integer, Double, Boolean, 등등 기본형 클래스 : int, double 과 같은 기본형 타입이다. 기본형은 객체가 아니기 때문에 메서드를 제공해 줄 수 없다.그리고 기본형은 null 값을 가질 수 없다. 기본형은 항상 값을 가지기 때문에 null 값을 가질 수 없다. int value = 10;int i1 = compareTo(value, 5);int i2 = compareTo(value, 10);int i3 = compareTo(value, 20);System.out.println("i1 = " + i1);System.out..

JAVA 2025.01.16

[Java] String

기본형은 char 은 문자 하나를 다룰 때 사용한다.char을 사용해서 여러 문자를 나열하면 char[]을 사용해야 한다. package string;public class charArrayMain { public static void main(String[] args) { char[] charArr; = new char[]{'h', 'e', 'l', 'l', 'o'}; }} 이런식으로 사용하는 것은 불편하기 때문에 문자열을 매우 편리하게 다룰 수 있는 String 클래스를 사용한다.package string;public class charArrayMain { public static void main(String[] args) { String str1 = "Hello"..

카테고리 없음 2025.01.10

[Java] 불변객체

기본형: 하나의 값을 여러변수에 절대 공유하지 않는다참조형: 하나의 객체를 참조값을 통해 여러 변수에 공유할 수 있다.(참조값을 복사하기 때문에 같은 인스턴스를 바라보게 된다.)공유하는 객체 값을 변경하지 않게 하는 방법 불변 객체:객체의 상태가 변하지 않는 객체를 불변 객체라 한다.package immutable; public class ImmutableAddress { private final String value; //final를 사용하기 때문에 ImmutableAddress 에 있는 "value" 값은 한번 생성하면 변경이 불가능 public ImmutableAddress(String value) { this.value = value; ..

JAVA 2025.01.09

하루 코테 3문제풀기-2일차

하루에 3문제는 무리였나보다 ^-^..004 숫자의 합 구하기(백준11660)https://www.acmicpc.net/problem/11660원래 숫자 리스트 A[i][j] 에서 배열에 대한 합 배열을 D[i][j] 인 배열을 만들어야한다.합배열 공식D[i][j] = D[i][j -1] + D[i -1][j] - D[i -1][j-1] + A[i][j]예)(1,2) 일 때, (1,1) (1,2) 을 더한 값이 합 배열에 들어간다.합 배열 (1,4) 은 합 배열 (1,3) 과 리스트 배열의 (1,4) 합합 배열 (3,4) 을 출력할려고 할 때,합 배열 (2,4) + (3,3) 의 합 을 하고 중복 값 제거를 위해 - 리스트 배열(2,3) 제거 와 + 리스트 (3,4) 의 합이다.  질의에 대한 답을 도출..

코딩테스트 2024.12.10

[Java] 클래스와 인터페이스의 활용

클래스 상속과 인터페이스 구현을 함께 사용하는 예를 알아보자. AbstractAnimal 은 추상클래스다sound() 는 동물의 소리를 내기 위한 추상 메서드를 제공한다.move() 은 동물의 이동을 표현하기위한 메서드이다. 하지만 추상 메서드는 아니며, 상속하여 사용할 것이다Fly 는 인터페이스 이다. Bird Chicken 은 날 . 수있는 동물이다. fly() 메서드를 구현 해야한다. Mainpackage poly.basic.ex6;public class SoundFlyMain { public static void main(String[] args) { Dog dog = new Dog(); Bird bird = new Bird(); Chicken chick..

JAVA 2024.12.07

[Java] 인터페이스

순수 추상 클래스를 편리하게 사용할 수 있도록 "인터페이스" 라는 기능을 제공한다. 인터페이스는 class 가 아니라 interface 키워드를 사용하면 된다. 순수 추상 클래스는 다음과 같은 특징을 가졌다1. 인스턴스를 생성할 수 없다.2. 상속 시 모든 메서드를 오버라이딩 해야 한다.3. 주로 다형성을 위해 사용된다. 인터페이스의 특징은1. 인터페이스의 메서드는 모든 public, abstract 이다.2. 메서드에 public abstract 를 생략할 수 있다.3. 인터페이스는 다중 구현을 지원한다.인터페이스에는 모든 멤버 변수는 public static final 이 모두 포함되었다고 간주한다. #final 은 변수를 한번 설정하면 수정 불가인터페이스는 구현이라고 정의하기 때문에 점선으로 표현한..

JAVA 2024.12.06

[Java] 추상클래스

추상클래스부모클래스는 제공하지만, 실제 생성되면 안되는 클래스를 추상 클래스라고 한다.추상 클래스는 말 그대로 실존하지 않은 클래스며, 실체인 인스턴스가 존재하지 않는다.대신 "상속" 목적으로만 제공되고, 부모 클래스 역할을 담당한다. 추상메서드부모 클래스를 상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 메서드를 부모 클래스에 정의할 수 있다. 이를 추상 메서드라고 한다. 추상 메서드는 실체가 존재하지 않고, 메서드 바디가 없다.추상 메서드는 상속 받는 자식 클래스가 반드시 오버라이딩해서 사용해야 한다.public abstract void sound(); 추상 메서드를 하나라도 사용할 경우, 무조건 클래스도 추상 선언해야 한다.//컴파일 오류발생package poly.basic.ex3;public..

JAVA 2024.12.06

[Java] 다형성의 활용

생성된 여러 클래스의 메서드를 하나하나 생성하지 않고, 클래스가 추가된다고 가정하면, 어떤 클래스를 만들고 다음 코드도 추가해야 한다. *Caw :  cow 로 오타예시)package poly.basic.ex1;public class AnimalSoundMain { public static void main(String[] args) { Dog dog = new Dog(); Cat cat = new Cat(); Caw caw = new Caw(); System.out.println("동물 소리 테스트 시작"); dog.sound(); System.out.println("동물 소리 테스트 종료"); soundCaw..

JAVA 2024.12.05