본문 바로가기

Java11

Java-제네릭(Generic) 제네릭(Generic) 제네릭(Generic)을 번역하면 ‘일반적인’이란 뜻이다. 단순히, 영어단어를 해석해서는 무슨 뜻인지 유추하기가 어렵다.. Java에서 제네릭은 데이터 형식에 의존하지 않고, 하나의 값이 여러개의 데이터 타입들로 사용될 수 있도록 하는 자바의 문법이다. 일반적으로 우리가 클래수 내부 필드나 메서드를 선언할 때 아래 코드와 같이 구체적인 타입을 지정해주었다. class Group{ private String element; Group(String item){ this.item = item; } } 위의 예시에서 element의 타입은 String으로 지정되어 있고, 위 클래스로 생성된 인스턴스는 String타입의 element만 저장할 수 있다. class GroupString{ p.. 2023. 7. 18.
Java-열거형(Enum) 열거형(Enum) Enum이란, enumerated type의 줄임말로 열거형이라고 한다. Enum은 여러가지 상수들을 보다 편리하게 선언하고 사용할 수 있도록 만들어진 상수들의 집합이다. class EnumExample{ public static final int SPRING = 1; public static final int SUMMER = 2; public static final int FALL = 3; public static final int WINTER = 4; public static final int SPRING = 1; public static final int NODE = 2; // 똑같은 변수 값으로 에러 발생 public static final int DJANGO = 3; publi.. 2023. 7. 17.
Java-객체지향 프로그래밍-추상화 추상화 객체지향 프로그래밍의 대표요소 중 다형성에 대해서 알아보자. 추상이란 “사물이나 표상을 어떤 성질·공통성·본질에 착안하여 그것을 추출하여 파악하는 것을 말한다. 자바에서 추상화의 핵심은 공통성과 본질을 추출하는 것 이라고 할 수 있다. 자동차를 예를들어 보자. 람보르기니와 포르쉐를 비교해보았을 때, 각각의 차에는 문, 바퀴, 창문, 핸들등 공통적인 요소를 가지고 있다. 람보르기니와 포르쉐는 서로 다른 모델이지만, 두 가지의 공통적인 요소들을 모으면 하나의 ‘자동차’라는 범주로 묶을 수 있다. 예시처럼 자동차라는 공통성과 본질을 추출하여, 정의하는 것을 추상화 라고 한다. 추상 클래스와 추상 메서드 추상클래스는 하나 이상의 추상 메서드를 포함하는 클래스를 가리켜 추상 클래스라고 한다. 추상클래스를 .. 2023. 7. 16.
Java-객체지향 프로그래밍-다형성 다형성 객체지향 프로그래밍의 대표요소 중 다형성에 대해서 알아보자. 다형성이란, 하나의 객체가 여러가지 형태를 가질 수 있는 성질이다. 더 나아가, 자바에서 다형성이란 상위 클래스의 참조 변수로 하위 클래스의 참조 변수를 다루거나 동일한 이름을 가진 여러 형태의 메서드를 만들 수 있는 등 다양한 형태를 가질 수 있는 성질이다. 업캐스팅, 다운캐스팅, 오버라이딩, 오버로딩등이 다형성에 속해 있다. 그럼 코드로 한번 다형성에 대해서 살펴보자. class Main { public static void main(String[] args) { Car car = new Car(); SmartCar smartCar = new SmartCar(); Car smartCar2 = new SmartCar(); //업캐스팅 .. 2023. 7. 15.
Java-객체지향 프로그래밍-캡슐화 캡슐화 객체지향 프로그래밍의 대표요소 중 캡슐화에 대해서 알아보자. 캡슐화란 클래수 내부의 서로 연관있는 필드와 메서드들을 캡슐처럼 하나의 객체로 패키징 하는 것이다. 캡슐화의 목적은 크게 두가지 이다. 데이터 보호 - 클래스에 정의된 필드와 기능들을 외부로부터 보호 데이터 은닉 - 클래스 내부의 데이터들을 감추고 필요한 부분만 외부에 노출 위와 같은 목적을 위해서 객체지향 프로그래밍에서는 캡슐화를 한다. 그렇다면, 어떻게 캡슐화를 구현할 수 있는지 한번 알아보자. 접근제어자 캡슐화의 첫번째 방법은 접근제어자를 이용하는 방법이다. 접근제어자는 클래스나 클래스 내부에 선언된 필드, 메서드에 선언이 가능하며 4가지의 접근제어자를 사용할 수 있다. 아래의 표는 4가지 접근제어자의 설명이다. 접근 제어자클래스 .. 2023. 7. 14.
Java-객체지향 프로그래밍 상속 상속 객체지향 프로그래밍의 대표요소 중 상속에 대해서 알아보자. 자바에서 상속이란, “현실에서 부모가 자식에게 재산을 상속한다”와 같이 무언가를 물려준다는 개념이다. 자바에서는 무엇이 무엇에게 상속하고 물려줄까?? -> 클래스에서 클래스간의 상속이다. 자바에서는 부모(상위)클래스와 자식(하위)클래스가 존재하며, 부모클래스는 자식클래스에게 상속해준다. 부모클래스는 자식클래스에게 무엇을 상속하나요? -> 부모클래스는 자식클래스에게 부모클래스에 정의된 필드와 메서드를 상속받는다. 위에서 설명한 상속의 개념을 바탕으로 코드로 확인해보자. 상속-코드예시 import java.io.IOException; import java.util.*; class Human{ String name; int age; String .. 2023. 7. 13.