본문 바로가기

JAVA25

자바 인터페이스 의미, 특징, 선언, 구현 방법 (interface) 안녕하세요, 스코리아입니다. 오늘은 자바 인터페이스의 의미와 특징, 선언, 구현 방법에 대해서 알아보겠습니다. 인터페이스 의미와 역할 개발 코드와 객체가 서로 통신하는 접점 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됨 개발코드가 객체를 종속되지 않게 하여 객체를 교체할 수 있음 개발 코드 변경 없이 리턴값 또는 실행 내용이 다양해짐 (다형성) 인터페이스 특징 인터페이스의 모든 메소드는 추상 메소드로 선언됨 (public abstract) 인터페이스의 모든 변수는 상수로 선언됨 (public static final) 인터페이스 선언 우선 인터페이스를 선언하는 방법은 다음과 같습니다. public interface 인터페이스명{ // 인터페이스 } 인터페이스에는 상수.. 2023. 9. 21.
자바 추상클래스 의미, 구현 방법 (abstract class) 안녕하세요, 스코리아입니다. 오늘은 자바 추상 클래스의 의미와 구현방법에 대해서 알아보겠습니다. 추상 (abstract)이란? 어원적 의미: 실체들 간에 공통되는 특성을 추출한 것 예: 삼성, 현대, LG를 통틀어 "회사"라 함 추상 클래스 (abstract class)란? 실체 클래스(객체를 만들어 사용할 수 있는 클래스)들의 공통되는 필드와 메소드를 정의한 클래스 추상 클래스는 실체 클래스의 부모 클래스 역할을 할 수 있음 (실체 클래스 -> 상속-> 추상 클래스) 추상 클래스 특징 구현 코드 없이 메소드의 선언만 있는 추상 메소드(abstract method)를 포함한 클래스 abstract 예약어 사용 추상 클래스는 단독으로 객체를 생성할 수 없고, 부모 클래스로만 사용 가능 (인스턴스화 불가) .. 2023. 9. 8.
자바 강제타입변환(다운케스팅 형변환) 의미, 사용방법 안녕하세요, 스코리아입니다. 오늘은 자바의 강제타입변환(다운케스팅 형변환)의 의미와 사용방법에 대해서 알아보겠습니다. 이전 시간에 포스팅한 자바의 자동타입변환에 대해서 모르신다면, 아래의 내용을 꼭 참고해 주시기 바랍니다. [이전 내용] 자바 자동타입변환(업케스팅 형변환) 알아보기: https://skorea6.tistory.com/22 강제 타입변환 의미, 특징? 의미 : 부모 타입을 강제적으로 자식 타입으로 변환 (자동적 X) 조건 : 자식 타입이 부모타입으로 자동 변환된 이후, 다시 자식 타입으로 변환할 때만 가능 (부모 타입으로 생성된 인스턴스를 바로 자식 타입으로 변환하는 것은 불가) 필요한 경우 : 자식 타입이 부모타입으로 자동 변환되면, 부모 타입에 선언된 필드와 메소드만 사용 가능. 이에 .. 2023. 9. 6.
[프로그래머스] 의상 문제 (Java Hash 풀이) 안녕하세요, 스코리아입니다. 오늘은 자바(Java)의 Hash(해시)를 이용한 프로그래머스 Lv.2 의상 문제를 풀어보겠습니다. 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 각 종류별로 최대 1가지 의상만 착용 가능 착용할 수 있는 의상의 경우의 수를 구하는 문제 아예 옷을 안 입는 경우는 없음 (최소 1개의 의상은 입음) [의상의 이름, 의상의 종류]로 이루어진 clothes 배열이 주어짐 같은 이름을 가진 의상은 존재하지 않음.. 2023. 9. 4.
자바 다형성 의미, 사용방법 (feat.객체지향) 안녕하세요, 스코리아입니다. 오늘은 자바의 객체지향의 핵심이라고 할 수 있는 다형성에 대해서 알아보도록 하겠습니다. 다형성 (polymorphism) 이란? 하나의 코드가 여러 자료형으로 구현되어 실행되는 것 즉, 같은 타입이지만 실행 결과가 다양한 객체를 대입할 수 있는 성질 같은 코드에서 여러 실행 결과가 나옴 객체지향의 중요한 부분 중 하나임 (상속, 정보은닉 등) 다형성을 잘 활용해서 프로그래밍을 하면 유연하고 확정석 있는 유지보수가 편한 프로그램 코드를 짤 수 있음 자동타입변환 부모 타입에는 모든 객체 대입 가능 (자식 타입은 부모 타입으로 자동 변환) 효과: 객체를 부품화 시킬 수 있음 (다형성으로 연결됨) 자동타입변환의 자세한 내용 참고하기: https://skorea6.tistory.com.. 2023. 9. 2.
자바 메소드 재정의 의미, 사용방법 (@Override) 안녕하세요, 스코리아입니다. 오늘은 자바 메소드 재정의(Overridng)의 의미와 사용방법에 대해서 알아보도록 하겠습니다. [이전 내용 참고] 오버로딩 vs 오버라이딩 : 생성자 오버로딩은 무엇인가? : https://skorea6.tistory.com/7 메소드 재정의 (Method Overriding)란? 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우, 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음 하위 클래스에서 상위 클래스의 동일한 메소드 이름으로 메소드를 다시 정의하는 것을 의미 @Override 애노테이션 애노테이션은 원래 주석이라는 의미 컴파일러에 특정 정보를 주는 역할 @Override 애노테이션은 "재정의 된 메서드"라는 의미로 .. 2023. 8. 31.
자바 자동타입변환(업케스팅 형변환) 의미, 사용 방법 안녕하세요, 스코리아입니다. 오늘은 자바의 자동타입변환(업케스팅 형병환)의 의미와 사용방법에 대해서 알아보겠습니다. 자동 타입변환이란? 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 뜻함 자식 클래스의 타입은 부모 클래스 타입으로 자동 타입 변환이 일어날 수 있음 자식 클래스는 부모 클래스의 타입을 내포하고 있으므로 부모 클래스로의 묵시적 형 변환이 가능함 상속 관계에서 모든 자식 클래스는 부모 클래스로 형 변환(업캐스팅)이 됨 (단, 그 역은 성립하지 않음) 부모클래스 변수 = 자식 클래스 타입 자동 타입변환된 이후 부모 클래스에 선언된 필드와 메소드만 접근 가능 메소드가 자식 클래스에서 재정의되었다면, 자식 클래스의 재정의된 메소드가 호출 (다형성의 특징) 자동 타입변환의 예시 이전 시간.. 2023. 8. 29.
[프로그래머스] 완주하지 못한 선수 문제 (Java Hash 풀이) 안녕하세요, 스코리아입니다. 오늘은 자바(Java)의 Hash(해시)를 이용한 프로그래머스 Lv.1 완주하지 못한 선수 문제를 풀어보겠습니다. 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 마라톤을 참가하는 선수 중 한 명의 선수를 제외하고 모두 완주했습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 완주하지 못한 선수를 return 하는 코드를 작성하면 됩니다. 문제에 나와있는 예시를 토대로 설명해 보겠습니다. particip.. 2023. 8. 27.
자바 객체 간의 상속(extend) 의미, 구현방법 안녕하세요, 스코리아입니다. 오늘은 자바 객체 간의 상속의 의미와 구현 방법을 예시와 함께 알아보겠습니다. 클래스 상속 (Class Inheritance) 의미 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함 상속하는 클래스: 상위 클래스, parent class, base class, super class 상속받는 클래스: 하위 클래스, child class, derived class, sub class 상속 문법 (방법) class B extends A { } 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념, 기능을 가짐 하위 클래스는.. 2023. 8. 25.