본문 바로가기

자바29

자바 다형성 의미, 사용방법 (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.
자바 ArrayList 주요 메소드 정리, 사용방법 안녕하세요, 스코리아입니다. 이전 시간에는 1차원 배열과 2차원 배열 선언, 초기화 방법에 대해서 알아보았습니다. [이전 내용] 1차원 배열 선언, 초기화 방법: https://skorea6.tistory.com/14 [이전 내용] 2차원 배열 선언, 초기화 방법: https://skorea6.tistory.com/16 오늘은 자바 ArrayList 선언 방법과 주요 메소드를 사용하는 방법에 대해서 알아보겠습니다. ArrayList vs 기존 배열 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했습니다. 즉, 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 따른 번거로운 구현이 필요했습니다. ArrayList는 배열의 크기(길.. 2023. 8. 23.
자바 2차원 배열 선언, 초기화 방법 (array) 안녕하세요 스코리아입니다. 이전 시간에는 자바 배열의 의미, 1차원 배열 선언/초기화 방법과 객체 배열 선언 방법에 대해서 알아보았습니다. [이전 내용] 1차원 배열 선언, 초기화 방법: https://skorea6.tistory.com/14 [이전 내용] 객체 배열 선언 방법: https://skorea6.tistory.com/15 오늘은 자바 2차원 배열을 선언하고 초기화하는 방법에 대해서 알아본 뒤, 이를 예제를 통해 확인해 보겠습니다 다차원 배열이란? 이차원 이상으로 구현된 배열 평면(이차원 배열)이나 공간(삼차원 배열)을 활용한 프로그램 구현 이차원 배열 선언 + 초기화 (1) int[][] arr = new int[2][3]; // 2행 3열 자료형 (int, float, double..)을 .. 2023. 8. 22.
자바 객체 배열 선언/구현하기 + 얕은복사, 깊은복사 방법 안녕하세요. 스코리아입니다. 이전 시간에는 자바 1차원 배열을 선언하는 방법과 초기화하는 방법에 대해서 알아보았습니다. [이전 내용] 1차원 배열 선언, 초기화 방법 : https://skorea6.tistory.com/14 오늘은 자바 객체 배열을 선언/구현해 보고, 얕은 복사와 깊은 복사 방법을 예제와 함께 알아보겠습니다. 객체 배열 특징 기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당됩니다. 하지만, 객체 배열의 경우에는 요소가 되는 객체의 주소가 들어갈 메모리(4byte, 8byte..)만 할당되고 각 요소 객체는 생성하여 저장해야 합니다. 객체 배열을 만들고 나면, 모든 index의 값은 null로 초기화됩니다. 객체 배열 선언, 구현하기 Book.java 파일을 만들어, Bo.. 2023. 8. 21.
[프로그래머스] 베스트앨범 문제 (Java Hash 풀이) 안녕하세요, 스코리아입니다. 오늘은 자바(Java)의 Hash(해시)를 이용한 프로그래머스 Lv.3 베스트앨범 문제를 풀어보겠습니다. 이 문제는 풀이 방식이 너무나도 다양하기 때문에, 풀이의 효율을 따지기가 조금 애매한 부분이 있습니다. 감안하고 봐주시기 바랍니다. 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 노래를 수록하는 기준을 고려하여, 노래가 들어간 순서대로 고유 번호를 출력하는 문제입니다. genres = 장르, play.. 2023. 8. 20.