본문 바로가기

Java/문법

(18)
[Java] enum(열거형) - 정의, 문법, 사용 예제, 실제 사례 enum이 뭐야? 왜 써야 돼?💡상수의 집합enum은 상수의 집합을 나타냅니다.관련된 상수들을 논리적으로 그룹화할 수 있습니다.💡가독성, 타입 안정성, 관련 메소드 정의가독성: 상수 그룹을 하나의 타입으로 묶어 의미를 명확히 표현할 수 있습니다.타입 안정성: 잘못된 값을 사용할 가능성을 줄이고, 컴파일 타임에 오류를 발견할 수 있습니다.관련 메소드 정의: 관련 메소드나 필드를 함께 정의할 수 있어서, 코드의 응집도를 높일 수 있습니다. enum 문법public enum EnumName { CONSTANT1, CONSTANT2, CONSTANT3;}  enum 사용 예제1다음은 enum을 사용하여 요일을 나타내는 예제입니다.Day라는 enum을 정의하고 그 안에 일주일의 요일을 상숭로 ..
[Java] 제네릭 - 개념, 문법, 타입 범위 제한, 상속, 주의사항 1. 제네릭이 대체 뭐야?💡 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법⇒ 타입을 변수화한 기능 타입 파라미터: Reference 타입만 가능컴파일 타임에 타입 검사를 통한 예외 방지 2. 문법 (클래스, 인터페이스, 메서드)(1) 제네릭 클래스, 인터페이스 정의// 클래스접근 지정자 class 클래스명 {}접근 지정자 class 클래스명{ // 제네릭 타입 변수명이 2개일 때}// 인터페이스접근 지정자 interface 클래스명{}접근 지정자 interface 클래스명{} 제네릭 타입 변수 관례적 표기 의미 T타입 TypeK키 KeyV값 ValueN숫자 NumberE원소 Element (2) 제네릭 클래스제네릭 클래스 - 객체 생성💡 제네릭 클래스는 클래스를 정의하는 시점에 타입을..
[Java] 인터페이스 - 개념, 일부 구현, 다중 구현, default & static 메서드 개념왜 써야 돼?💡 다중 구현을 통한 자유로운 상속 관계 ⇒ 클래스의 다형성보다 다채롭고 자유롭게 사용 가능프로그램을 설계하고 조금 더 유연한 프로그램을 만들기 위함추상화, 상속과 더불어 다형성이라는 객체 지향(OOP)의 특징을 구현하는 핵심인터페이스의 다형성부모클래스 타입으로 자식클래스 타입을 포함시킬 수 있음(상속) ⇒ 인터페이스 타입으로 그 인터페이스를 구현한 클래스 객체를 사용할 수 있음 interface Keyboard { }class Logitec_Keyboard implements Keyboard { }class Samsung_Keyboard implements Keyboard { }class Apple_Keyboard implements Keyboard { }public class Mai..
[Java] System.out.printf(서식 지정자) 1. System.out.printf기본 형식: System.ouot.printf("출력 포맷", 인자, 인자, ...)의 형태%f로만 출력할 때소수점 아래의 자릿수가 여러 개 표현되는데, 이를 정형화하는 방법은 다음과 같습니다.%전체 자릿수 + . + 소수점 자릿수 + f%4.2f: 전체 자릿수를 4개, 소수점은 아래 2자리까지 표현하라는 의미입니다. 2. 서식 지정자종류설명%dint 정수형 문자%ffloat, double 실수형 문자%sString 문자열%cchar 문자%o8진 정수 출력%x16진 정수 출력%%퍼센트 표시%n개행문자 표시System.out.printf("%d와 %4.2f", 10, 3.2582);10, 3.26
[Java] 핵심 기본편 - 익명 클래스, 람다와 스트림, 예외 처리(Try Catch, Throw, Finally, Try With Resource, 사용자 정의 예외, Throws) 1. 익명클래스, 람다와 스트림익명클래스익명클래스: 한 번만 사용되는 이름 없는 클래스main 메소드에서 클래스를 호출한 뒤 {@Override}// Person 클래스class Person { public void introduce() { System.out.println("사람입니다"); }}// main 메소드public static void main(String[] args) { Person person = new Person(); person.introduce(); // 사람입니다}// 익명 클래스 - Person 클래스의 introduce라는 동작을 변경할 수 있음public static void main(String[] args) { Person per..
[Java] 핵심 기본편 - 추상클래스와 인터페이스, 제네릭스(제네릭스, 제네릭 클래스, Wrapper 클래스, ArrayList, LinkedList, HashSet, HashMap, Iterator) 1. 추상클래스와 인터페이스추상클래스추상클래스: 아직 완성되지 않은 클래스abstract class 클래스명 {}아래 Shape 클래스는 완성되지 않은 추상 클래스지만, 상속하는 자식 클래스에서 메소드를 완성시켜 추상 클래스를 활용할 수 있음 // 추상 클래스abstract class Shape{ // Shape: 클래스 abstract double calculateArea(); // calculateArea: 도형 크기를 재는 메소드}// 정사각형 클래스class Square extends Shape { // Square: Shape 클래스 상속 private double s; // 한 면의 길이 public Square(double s) { this.s = s; } ..
[Java] 핵심 기본편 - 클래스(변수, 메소드, This, 생성자, Getter&Setter, 접근 제어자, 패키지, 상속, 메소드 오버라이딩, 다형성, Super, 참조, Final, 열거형) 1. 클래스클래스클래스: 데이터와 기능을 포함하는 코드 묶음, 설계도 역할객체: 클래스로부터 만들어진 실체종이접기 책이 클래스라면, 책을 보고 만든 종이학이 객체 class 클래스명{}// 클래스 Personclass Person {}// 클래스 Person으로 만든 객체 ppublic static void main(String[] args) {Person p = new Person(); // 새로운 객체를 만들기 위해서 new 키워드를 쓰고 클래스명();} 인스턴스 변수인스턴스 변수: 클래스 내에 선언된 변수class 클래스명{인스턴스 변수1 ...}변수명 뒤에 점(.)으로 인스턴스 변수에 접근 가능객체마다 서로 다른 값을 가질 수 있음// 클래스 - 인스턴스 변수class Person { Str..
[Java] 핵심 기본편 - 메소드(전달값, 반환값, 메소드 오버로딩, 변수의 범위) 1. 메소드메소드메소드: 특정 기능을 수행하기 위한 코드 묶음메소드명();메소드 호출메소드는 한 번 정의해 두면 필요한 만큼 얼마든지 사용할 수 있음// 메소드 형태접근제어나 반환형 메소드명(전달값) { 명령문1 명령문2 ...}// 예제1 (안녕? 문자열을 출력하는 print 메소드)public static void print() { System.out.println("안녕?");}public static void main(String[] args) { print(); // 메소드를 사용하기 위해선 메소드명(print)을 호출해야 함 print(); print();} 전달값전달값: Parameter, 메소드 호출 시 전달하는 값메소드 호출 시메소드명(): 괄호를 비워두면..

반응형