일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Number Theory
- dynamic programming
- 구현
- Method
- 코딩테스트
- Matrix
- array
- 파이썬
- Counting
- bit manipulation
- database
- simulation
- Binary Tree
- Stack
- SQL
- java
- hash table
- 코테
- Binary Search
- geometry
- Math
- implement
- greedy
- Data Structure
- sorting
- string
- Class
- two pointers
- 자바
- Tree
- Today
- Total
목록Method (20)
코린이의 소소한 공부노트

인터페이스는 1. 추상 메서드의 집합으로, 2. 부수적으로 상수, 디폴트 메서드, 스태틱 메서드를 선언할 수 있다.(jdk 1.8부터 적용) interface A { void method1(); void method2(); } class B implements A{ public void method1() { } public void method2() { } } abstract class C implements A{ public void method2() { } } - 어떤 클래스(B)가 인터페이스(A)를 구현할 경우, A에 선언된 모든 추상 메서드를 구현해야 한다. 만약 모든 메서드를 구현하지 않는다고 하면 추상 클래스(C)로 만들어야 한다. - 이 상태에서 인터페이스(A)에 새로운 추상 메서드를 추가하..

앞서 클래스를 객체를 만드는 설계도로 표현했었다. 이번에 공부할 추상 클래스는 미완성 설계도로 표현할 수 있다. [추상 클래스] 1. 미완성 메서드를 갖고 있는 클래스다. abstract class Person{// 제어자를 붙여 추상 클래스임을 알려준다. abstract void eat(String s);// 추상 메서드 abstract void introduce();// 추상 메서드 } Person 안에 선언된 메서드들은 제어자 abstract가 있고 구현부가 없다. 이렇게 구현부가 없는 메서드를 추상 메서드라고 한다. 그리고 이런 추상 메서드를 갖고 있는 클래스를 추상 클래스라고 한다. 2. 다른 클래스 작성에 도움을 주기 위한 클래스로, 인스턴스를 생성할 수 없다. Person p = new Pe..

메서드 오버라이딩이란 상속받은 조상의 메서드를 자신에 맞게 변경하는 것을 말한다. 예시로, 2차원 좌표를 나타내는 Point 클래스를 상속받아 3차원 좌표를 나타내는 Point3D 클래스를 만들었다. class Point{ // 2차원 좌표 int x; int y; String getLocation() { // 객체의 x, y값 순서쌍으로 출력 return "(x, y) = (" + x + ", " + y + ")"; } } class Point3D extends Point{ // 3차원 좌표 int z; String getLocation() { // 메서드 오버라이딩 return "(x, y, z) = (" + x + ", " + y + ", " + z + ")"; } } Point 클래스는 좌표가 2..

변수는 선언 위치에 따라 클래스 변수(cv), 인스턴스 변수(iv), 지역 변수(lv)로 나눠졌다. 메서드도 어떤 것을 기준으로 2가지로 나눠지는데, 기준이 무엇일지 읽어보면서 유추해보자. 메서드는 스태틱 메서드와 인스턴스 메서드로 나눠진다. 아래 예시 코드를 본 후 설명을 읽어보자. class Mathfunc { int a, b; // iv int add() { // im return a+b; // iv } static int add(int a, int b) { // cm return a+b; // lv } } public class Test{ public static void main(String args[]) { // 1) 스태틱 메서드 사용 System.out.println(Mathfunc.add..

메서드의 매개변수는 메서드 선언 시 입력값으로 작성하는 변수로, 메서드가 호출되면 콜러(caller)에서 넘겨준 값을 매개변수에 복사(대입)한 후 메서드 구현부를 실행하게 된다. 일반 변수도 그렇듯 매개변수도 기본형과 참조형으로 구분된다. 1. 기본형 매개변수 - 정수형(byte, short, int, long), 실수형(double, float), 논리형(boolean), 문자형(char) - 콜러에서 넘겨준 변수의 값을 읽기만 할 수 있고 변경할 수 없다.(=read only) 2. 참조형 매개변수 - 문자열형(String), 배열, 기타 사용자 정의 객체 - 콜러에서 넘겨준 변수의 값을 읽고 변경할 수 있다.(=read & write) 매개변수로 넘기는 것이 기본형일 때와 참조형일 때 어떤 차이가 ..

메서드 호출이 일어날 때 메모리 상황이 어떤지를 알려면, 스택이라는 것을 먼저 이해해야 한다. [스택 vs 큐] 1. 스택(stack): Last In First Out, 줄여서 리포 LIFO. 마지막에 들어간 것이 먼저 나온다는 뜻 = 후입 선출 - 컵과 같이 한쪽이 막혀 있고 다른 한쪽에 쌓아 올리는 것 - 주로 막힌 곳을 아래, 열린 곳을 위로 표현 - 스택에 추가를 할 경우 위로 쌓게 됨 - 스택에서 제거를 할 경우 위에서부터 제거가 됨 2. 큐(queue): First In First Out, 줄여서 피포 FIFO. 먼저 들어간 것이 먼저 나온다는 뜻 = 선입 선출 - 파이프처럼 양쪽이 뚫려 있는 형태 - 주로 들어가는 쪽을 뒤, 나오는 쪽을 앞으로 표현 - 큐에 추가를 할 경우 맨 뒤에 추가됨..

메서드는 객체지향 언어에서 쓰는 말로, 작업 단위로 문장들을 묶어서 이름 붙인 것이다. 함수는 클래스에서 독립적으로 있을 수 있는 반면 메서드는 클래스 안에 존재해야 한다. 이런 차이가 있긴 하나, 결과적으로 함수와 메서드는 같은 말이다. 메서드를 왜 사용하는지 배열의 모든 요소를 2번 출력하는 상황을 보자. - 왼쪽 코드: 출력할 때마다 for문 사용 - 오른쪽 코드: 배열 요소를 출력하는 메서드를 만들어 놓고 메인 메서드에서 메서드 호출(사용) 수정이 필요할 때 모든 중복 코드를 다 찾아서 일일이 수정 -> 관리가 어려움 2. 코드 관리가 쉽다. - 메서드를 한 곳에 써놓고 사용하기 때문에, 메서드 수정이 필요한 경우 여러 군데에서 메서드 호출을 해도 1군데만 수정하면 됨(=코드의 유지보수성이 좋음)..

데이터를 다룰 때 우리는 다음과 같은 것들을 이용한다. 1. 변수 - 하나의 데이터를 저장할 수 있는 공간 - 타입에 따라 공간의 크기가 다름 - 자세한 설명은 2021.12.06 - [Java] - 변수의 데이터 타입(data type) 2. 배열 - 같은 종류의 여러 데이터(변수)를 하나로 저장할 수 있는 공간 - 배열의 크기를 정하면 (배열의 크기) * (타입에 따른 변수의 크기)만큼 공간이 할당됨 - 자세한 설명은 2022.01.14 - [Java] - 배열 (1) 선언과 생성, 인덱스 3. 구조체 - 서로 관련된 여러 데이터를 하나로 저장할 수 있는 공간 - 배열과는 다르게 종류에 상관없이 한 구조체에 담을 수 있음 - 자바에서는 이를 딱히 지칭하는 말은 없음 4. 클래스 - 서로 관련된 데이터..

객체는 실제로 존재하는 사물 또는 개념을 뜻한다. 이러한 객체를 정의해 놓은 것을 자바에서는 클래스라고 부른다. 클래스는 객체를 생성하는 데 사용하고, 객체는 객체가 가지고 있는 기능과 속성에 따라 그 쓰임새가 다르다. 클래스를 제품 설계도라고 한다면 객체는 그것을 이용해서 만든 제품이라고 생각하면 된다. 특정 클래스에서 만든 객체를 지칭할 때는 객체보다 인스턴스라는 표현을 많이 쓰고, 모든 인스턴스를 통틀어서 표현할 때는 객체라고 표현한다. (비유 예시 - 붕어빵 틀로 찍어낸 붕어빵들 중 슈크림 붕어빵을 가장 좋아한다.) 1. 클래스 클래스에는 객체의 속성, 기능이 정의되어있다. 예를 들어 사람 클래스에 다음과 같은 속성과 기능이 있다고 해보자. - 속성: 이름, 나이, 현재 상태(자는지 깨어있는지) ..

String 클래스는 문자배열(char[])에 기능(메서드)를 결합해놓은 것을 말한다. char[]로 문자열을 나타내도 크게 상관은 없지만, 사용자에게 여러 메서드를 제공해서 편의성을 높이기 위해 문자열을 클래스로 만들어놓은 것이다. 왼쪽 str은 문자열, 오른쪽 arrChar는 문자 배열이다. 변수 이름을 쓰고 마침표를 찍으면 사용 가능한 메서드 또는 상수들이 나오는데, 왼쪽에는 스크롤이 생길 정도로 여러 가지가 있는 반면 오른쪽은 스크롤도 생기지 않는 것을 볼 수 있다. 즉 문자열에 더 많은 기능이 제공되고 있다는 것이다. String 클래스의 메서드는 여러 가지가 있지만, 자주 쓰는 몇 가지만 소개하겠다. 1. char charAt(int index): 해당 인덱스의 문자를 반환한다. // inde..