본문 바로가기

無汗不成


전체 글

(26)
[블로그 이전] "코드의 마법사" 블로그로 이주합니다!! https://codewizard.tistory.com/ 코드의 신비: 컴퓨터 마법사의 일기 📙 + 💻 == 🧙 codewizard.tistory.com 잘 부탁드립니다 ⭐⭐
오버라이딩 & 오버로딩 비교하기(핵심정리) 비교항목 오버라이딩 오버로딩 메소드 시그니처 (메서드이름, 매개변수[개수, 타입, 순서]) 같아야 한다. 달라야 한다. 리턴타입 같다 같다 용도 riding(올라탄다)을 이용해서 부모 클래스에 추가로 더하다, 또는 올라타서 동작방법을 추가할 때 사용한다. loading은 매개변수의갯수나 타입을 다르게 하고 싶을 때 사용한다. 질문사항 정리 1. 오버라이딩: 만약 return 타입이 다르다면? 컴파일 오류가 발생합니다. 그러나 자바 5 이전 버전에서는 오버라이딩된 메서드의 반환 타입을 하위 클래스의 타입으로 변환하는 것이 허용되었습니다. 하지만 자바 5 이후 버전부터는 반환 타입 또한 엄격하게 일치해야 하므로 변경되었습니다. 2. 오버로딩: 만약 return 타입이 다르다면? 만약 return 타입이 메서..
오버라이딩 (overriding) 오버라이딩은 한국어로는 "재정의"라는 뜻이다. 상속은 자식클래스가 부모클래스의 것을 그대로 가지고 온다. 이때, 부모의 것을 가져오는데 추가적으로 더 필요한 일들을 정의할 수 있는데 이를 오버라이딩(overrding)이라고 한다. 오버라이딩은 "재정의"라는 말처럼 부모클래스의 것을 쓰지 않고 자식이 부모의 것을 재정의하여 사용하는 것입니다. 클래스에서의 오버라이딩 클래스를 상속받을 상태에서 오버라이딩하면, 자식클래스의 메서드를 호출할 때, 자식클래스의 메서드가 호출됩니다. 오버라이딩의 조건 오버라이딩 하려면 return 타입이 같아야 한다. 너무나 당연하게 메서드 이름도 같아야 한다.매개변수 또한 개수와 타입이 맞아야 한다(매개변수의 이름은 달라도 된다.)=> 즉, 메서드 시그니처가 같아야 한다. (메서..
[OOP] 상속과 생성자 & super 생성자 예제 1 class Calculator { int left, right; public Calculator(int left, int right){ this.left = left; this.right = right; } public void sum(){ System.out.println(this.left+this.right); } public void avg(){ System.out.println((this.left+this.right)/2); } } 를 보면 클래스 이름과 같은 메서드를 이용하여 초기화할 수 있다. public Calculator(int left, int right){ this.left = left; this.left = right; } 이 class 이름과 같은 메서드를 생성자(c..
[자료구조] 우선순위 큐(Priority Queue), Heap 우선순위 큐 우선순위를 가진 항목들을 저장하는 큐 우리가 정한 우선순위대로 정해진 큐 원래라면 1차선 도로처럼 FIFO 순서대로 나아가는 것을 큐(Queue)다. 2차선처럼 우선순위가 높은 데이터가 먼저 나가는 것이 우선순위 큐다. 숫자의 크기를 가지고 일단 우선순위 큐를 만들어보자. 우선순위 큐(heap)은 2가지로 구분 최소 우선순위 큐 (min heap) 최대 우선순위 큐(max heap) 우선순위 큐 구현방법 3가지가 존재한다 1. 배열을 이용한 우선 순위 큐 정렬이 안된 배열 정렬이 된 배열 삽입 - O(1) 가장 뒤에 삽입 삭제 - O(n) 처음부터 끝까지 모든 요소를 check하여 삭제 삽입 - O(n) 모든 요소와 삽입할 요소의 우선순위를 비교하여 삽입위치 결정(이진탐색) 삭제 - O(1)..
[OOP] 오버로딩 & 메서드 시그니처 (overloading & method signature) 오버로딩 오버로딩이란 메서드의 이름이 같지만 매개변수의 (개수, 타입)이 다른 경우를 말합니다. 즉, 같은 메서드 이름을 가지면서 매개변수의 타입 또는 개수가 다른 여러 개의 메서드를 정의할 수 있는 기능을 의미합니다. 이렇게 오버로딩된 메서드들은 컴파일러에 의해 메서드 호출 시 전달되는 인자의 타입 및 개수에 따라 적절한 메서드가 선택되어 실행됩니다. 이때, 로버로딩된 메서드들은 메서드 시그니처가 달라야 합니다. 메서드 시그니처란? 메소드 이름 파라미터 수 파라미터 타입의 순서 다음의 조건을 모두 만족하면 메서드의 signature가 같다고 할 수 있다. Example 아래 두 메서드는 같은 signature라고 할 수 있다. public MyClass { public String myMethod(St..
[java] 자바 문법 기초 배열 같은 자료형의 값 여러 개를 저장하는 연속된 공간 배열을 선언하는 4가지 방법 // 배열 선언 첫 번째 방법 String[] coffees = new String[4]; // 두 번째 방법 String coffees[] = new String[4]; // 세 번째 방법(선언과 동시에 초기화) String[] coffees = new String[] {"아메리카노", "카페모카", "라떼", "카푸치노"}; // 네 번째 방법 String[] coffees = {"아메리카노", "카페모카", "라떼", "카푸치노"}; 배열 순회 public static void main(String[] args) { // 배열의 순회 String[] coffees = {"아메리카노", "카페모카", "라떼", "카푸..
[팁] 변수표기법 프로그래밍은, 다양한 스타일로 변수명 등을 지정한다. 프로그래밍을 할 때, 변수나 클래스명을 지을 때 공백(" ")을 지우고 그 이름을 짓는다. 예를 들어 변수명은 공백을 애초에 허용하지 않는다. 또한 파일명, 패키지명등은 "\"등이 들어가면 경로에 들어갈 수 있기에 불가능하다. 이에 대해 여러 가지 명명규칙인 (카멜, 파스칼, 케밥, 스네이크) 케이스를 소개한다. 1. 카멜 케이스 카멜케이스라고 이름 지어진 건 낙타의 등이 중간에 불룩 튀어나온 것처럼 글자의 중간중간이 불룩 튀어나와 있기 때문입니다. 원본 문자: Around Hub Studio 케이스 적용 문자: aroundHubStudio 2. 파스칼 케이스 첫번째 문자를 대문자로 변경해 준다는 것이 카멜과 다르다. 자바 클래스의 이름을 정할 때 주..