JAVA/기초공부 20

[JAVA] 제너릭 (Generics)

제너릭자바에서 클래스나 메서드가 사용할 데이터 타입을 미리 지정하지 않고, 나중에 사용할 때 타입을 지정할 수 있도록 하는 기능     제너릭을 사용하는 이유타입 안전성제너릭을 사용하면 컴파일 시점에 타입 체크가 이루어진다. 이를 통해 잘못된 타입의 데이터를 사용하는 것을 방지할 수 있으며 런타임에서 발생할 수 있는 ClassCastException 같은 오류를 예방할 수 있다.코드 재사용성제너릭을 사용하면 다양한 데이터 타입에 대해 하나의 코드로 처리할 수 있으므로 코드의 재사용성을 높일 수 있다. 예를 들어 Integer나 String 같은 다른 타입을 처리하는 로직을 따로 만들 필요 없이 제너릭을 사용하면 하나의 로직으로 처리할 수 있다.         Generic 메서드 사용 배열 출력 예제pu..

JAVA/기초공부 2024.10.14

[JAVA] 컬렉션 (Collections)

컬렉션(Collection)여러 개의 객체를 효율적으로 저장하고 처리하기 위한 객체의 그룹자바 컬렉션 프레임워크는 이러한 컬렉션들을 다루기 위한 표준화된 API를 제공한다.이를 통해 데이터의 저장, 검색, 삭제, 정렬 등의 작업을 편리하게 수행할 수 있다.인터페이스 - "이런 기능을 해야 한다" 라는 규칙만 정의한 틀구현 클래스 - 인터페이스에서 정의한 기능을 실제로 구현한 클래스유틸리티 클래스 - 공통적인 기능(정렬, 검색 등)을 모아 놓은 클래스     주요 인터페이스Collection 인터페이스모든 컬렉션의 기본이 되는 인터페이스하위 인터페이스들과 그 구현체들이 지켜야 하는 기본적인 메서드들 정의 List순서가 있는 데이터의 집합중복된 요소를 혀용하며 인덱스를 통해 요소에 접근할 수 있다.구현 클래..

JAVA/기초공부 2024.10.13

[JAVA] java.util 패키지 내의 주요 클래스

java.util 패키지자바에서 매우 중요한 클래스들을 모아놓은 패키지데이터 구조, 날짜 및 시간 관련 클래스, 랜덤 숫자 생성, 컬렉션 프레임워크 등 다양한 유틸리티 기능 제공컬렉션 프레임워크 (Collection Framework) - 리스트, 집합, 맵날짜와 시간 클래스 - Date, Calendar, TimeZone, GregorianCalendar랜덤 숫자 생성 클래스 - Random 유틸리티 클래스 - Arrays, Collections스택과 벡터 클래스 - Stack, VectorProperties 클래스Observer 패턴 관련 클래스UUID 클래스 Comparator 인터페이스Scanner 클래스Timer 클래스       Random 클래스자바에서 난수(랜덤 숫자)를 생성하기 위해 사용..

JAVA/기초공부 2024.10.13

[JAVA] java.lang 패키지 내의 주요 클래스들

java.lang 패키지란?자바 프로그래밍의 핵심이 되는 기본 클래스들을 포함하고 있으며, 별도의 import 없이 사용할 수 있는 표준 패키지이다.ex ) Object 클래스, String 클래스, Math 클래시, System 클래스, Class 클래스, Wrapper 클래스 등등     Object 클래스자바에서 모든 클래스의 최상위 클래스모든 객체는 기본적으로 Object 클래스를 상속받는다.주요 메서드 : equals(), hashCode(), toString(), clone()     Class 클래스클래스의 메타데이터에 접근하거나 동적으로 객체를 생성하는 등의 작업을 할 수 있다.주요 메서드 : getName(), newInstance(), forName()     래퍼(Wrapper) 클래..

JAVA/기초공부 2024.10.13

[JAVA] 예외처리

프로그래을 실행하는 도중에 논리적인 오류나 예기치 못한 시스템 오류들을 접하게 된다. 시스템 오류  - 갑자기 수행을 멈추거나 디스크오류 등의 시스템과 관련된 오류로서 해결이 불가능하다.논리적 오류 - 구문적으로는 올바르지만 개발자가 의도한 대로 동작하지 않는 경우비정상적인 오류(Exception) - 시스템 오류나 논리적 오류가 아닌 오류비정상적인 예외인 경우 프로그램에서 오류를 미리 예측하고 대비하여 적절한 처리를 한 다음 프로그램 수행을 계속하여 정상적인 종료가 되도록 한다.(exception handling)     예외처리 종류Array Index Out Of Bounds Exception배열의 크기를 초과하여 인덱스 지정한 경우ArithmeticException나눗셈에서 0으로 나눈 경우 발생..

JAVA/기초공부 2024.10.13

[JAVA] 인터페이스 (Interfaces)

자바에서 인터페이스란?: 클래스가 구현해야 하는 메서드들의 집합을 정의하는 일종의 템플릿객체의 동작을 명시하는 역할을 한다.해당 인터페이스를 구현하는 클래스는 그 안에 선언된 모든 메서드를 반드시 구현해야 한다. 특징인터페이스 안에는 기본적으로 구현되지 않은 추상 메서드들이 정의된다. 메서드들은 선언만 되어  있고 실제 구현은 인터페이스를 구현하는 클래스에서 이루어진다.자바 클래스는 여러 인터페이스를 구현할 수 있다. 이를 통해 다형성을 높이고 클래스가 다양한 행동을 가질 수 있게 한다.인터페이스 안에 선언된 변수는 암묵적으로 public, static, final 로 간주되며 상수로 동작한다.인터페이스는 다른 인터페이스를 상속할 수 있으며 여러 인터페이스로부터 상속받아 새로운 인터페이스를 정의할 수 있..

JAVA/기초공부 2024.10.09

[JAVA] 추상 클래스

개요자바언어는 클래스들이 중심인 언어로서 문제 해결을 위한 클래스를 설계할 때 클래스의 사용과 구현을 분리하여 무엇을 해야 하는지에 중점을 두어 설계한다.슈퍼 클래스에서 행위에 해당하는 메소드를 나타내고 그 행위를 어떻게 하는지는 추상적으로 표현함으로써 무엇을 하는가를 알 수 있는 명세서를 제공한다.서브클래스에서 슈퍼 클래스의 메소드를 오버라이딩하여 실제 어떻게 해야하는지를 구현해야 한다.추상적으로 표현된 클래스는 인스턴스를 만들 수 없으며 실체가 없는 추상클래스가 된다.     추상 클래스 (Abstract  Class): 추상 메소드를 하나 이상 포함 하고 있는 클래스의 경우추상 메소드는 메소드의 선언 부분만을 가지고 있으므로 상속 받은 자식 클래스에서 반드시 구현을 필요로 하는 메소드이다.     ..

JAVA/기초공부 2024.10.09

[JAVA] 형 변환, static, final

클래스의 형 변환이란?: 객체가 다른 타입으로 변환되는 것업캐스팅과 다운캐스팅이 있다.    업캐스팅: 하위 클래스의 객체를 상위 클래스 타입으로 변환하는 것업캐스팅은 암시적으로 이루어지기 때문에 명시적으로 변환할 필요가 없음🔸 업캐스팅을 하면 상위 클래스에 정의된 메서드들만 사용할 수 있고, 하위 클래스에 추가된 메서드는 사용할 수 없다.🔸 업캐스팅을 하면 객체는 실제로는 여전히 원래의 하위 클래스의 인스턴스이지만, 상위 클래스 타입으로 참조하게 된다. => 객체의 실제 타입이 바뀌는 것이 아니라 그 객체를 가리키는 참조 변수의 타입이 바뀌는 것    다운캐스팅: 상위 클래스 타입의 객체를 하위 클래스 타입으로 변환하는 것업캐스팅과 달리 명시적으로 변환을 해주어야 한다🔸 잘못된 다운캐스팅은 Cla..

JAVA/기초공부 2024.10.09

[JAVA] 접근 제한자

자바에서 접근 제한을 두는 이유캡슐화 개념을 구현하기 위해서캡슐화 : 객체 지향 프로그래밍의 중요한 원칙 중 하나로 객체의 내부 상태를 숨기고 외부에서는 제공된 메서드를 통해서만 접근할 수 있도록 제한하는 것. 코드를 더 안전하게 만들고 유지보수를 쉽게 할 수 있다.    클래스 접근 제한자1.  public 접근 제한자어느 패키지에서나 접근이 가능프로젝트 내의 모든 코드에서 해당 클래스를 사용할 수 있다. 2. default 접근 제한자접근 제한자를 명시하지 않으면 default 접근 제한자를 갖는다.같은 패키지 내에서만 접근이 가능하다. public 이 자주 사용되어 해당 클래스가 다른 패키지에서도 사용될 수 있도록 한다.하지만 내부적인 처리를 위한 클래스는 default로 설정하여 외부에서의 접근을..

JAVA/기초공부 2024.10.03

[JAVA] 메소드 오버라이딩

메소드 오버라이딩 ( Method Overridings ): 부모 클래스에서 정의된 메소드를 자식 클래스에서 재정의하여 사용하는 것오버라이딩은 다형성을 구현하는 중요한 방법 중 하나자식 클래스에서 부모 클래스의 메소드를 그대로 사용하는 대신 해당 메소드의 기능을 자식 클래스에 맞게 재정의하는 경우에 사용      오버라이딩과 오버로딩의 차이점오버로딩 : 같은 클래스 내에서 메소드 이름은 같지만 매개변수의 개수나 타입이 다른 여러 메소드를 정의하는 것오버라이딩 : 상속받은 메소드를 자식 클래스에서 재정의 하는 것      자바에서 오버라이딩이 존재하는 이유1.  다형성 구현다형성 : 같은 인터페이스나 상위 클래스의 메소드가 여러 형태로 동작할 수 있도록 하는 객체 지향 프로그래밍의 중요한 개념오버라이딩을 ..

JAVA/기초공부 2024.10.01