일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인프런
- 카카오코테
- join
- 혼공챌린지
- 스터디
- 알고리즘
- Kotlin
- Til
- CS
- 안드로이드
- Android
- 자바
- select
- 코틀린
- 정처기
- SQL
- 오블완
- 코테
- doitandroid
- 혼공파
- 혼공단
- 티스토리챌린지
- MySQL
- 자료구조
- 기술면접
- 프로그래머스
- groupby
- 안드로이드스튜디오
- java
- 정보처리기사
- Today
- Total
목록인프런 (27)
Welcome! Everything is fine.

💡 인터페이스 요소 기존에는 상수와 추상메서드가 인터페이스의 구성요소였지만, 자바8 부터 다른 요소들이 추가되었다. 추가된 메서드는 다음과 같다. 메서드 설명 디폴트 메서드 default 키워드를 사용하며, 기본 구현을 가지는 메서드. 구현 클래스에서 재정의할 수 있다. 만약 재정의 하지 않으면 디폴트 메서드의 기존 내용이 들어간다. 하지만 재정의 할 수 있어도 인터페이스를 인스턴스화 할 수는 없다. 정적(static) 메서드 인스턴스 생성과 상관없이 인터페이스 타입으로 사용할 수 있는 메서드. 어떤 클래스가 그 인터페이스를 구현하지 않아도 인터페이스에 선언된 메서드를 new하지 않고 호출해서 쓸 때 사용한다. private 메서드 인터페이스 내부에서만 기능을 제공하기 위해 구현하는 메서드. 인터페이스를..

💡 추상클래스(abstact class) 추상클래스는 구현코드 없이 메서드의 선언만 있는 추상메서드를 포함한 클래스를 말한다. 물론 추상메서드뿐만 아니라 구현메서드도 들어갈 수 있다. abstract 키워드를 사용하며, 추상클래스는 new(인스턴스화) 할 수 없다. 추상클래스는 상속을 하기 위해 만드는 클래스이기 때문에 자기 혼자 돌아가는 클래스가 아니다. 따라서 상위 클래스에서는 어떤 것을 보여줄지 정의하고, 하위 클래스에서 구체적으로 어떤 것을 보여줄지 구현한다. 즉, 상위 클래스에서 구현하지 못하고 하위 클래스에 위임해야하는 부분을 추상메서드로 만든다. 다음 코드는 구현 코드는 없지만 구현부는 존재하는 메서드다. public void display() {}; 그러나 다음 코드는 구현코드는 물론 구현..

💡 가상 메서드(virtual method) 가상 메서드란 인스턴스의 메서드가 호출되는 것을 말한다. 재정의가 되어있지 않은 경우 부모 클래스의 메서드를 호출하지만, 재정의가 되어있을 경우 메서드 영역은 2개가 된다. 이때 재정의된 자식 클래스의 메서드를 호출하는 것이다. 이 가상메서드에 의해서 다형성이 구현된다. 아래 코드를 예시로 들면, 부모 클래스인 Customer 클래스에서의 calcPrice()메서드는 자식 클래스인 GoldCustomer 클래스에서 기능이 더 추가되어야한다. 보너스 포인트 비율도 다르고, 할인도 해주기 때문이다. 그래서 GoldCustomer 클래스를 보면, calcPrice()메서드를 재정의하여 사용했다. public class Customer { protected int c..

💡 상속 상속을 사용하면 객체 지향 프로그램에서 다형성을 구현할 수 있다. 클래스를 정의할 때, 이미 구현된 클래스를 상속받아서 속성이나 기능이 확장되는 클래스를 구현한다. 상속이라는 것이 무조건 어떤 클래스를 가져다 쓴다는 의미는 아니다. 일반적인 클래스가 이미 정의가 되어있고, 그 클래스보다 좀 더 구체적인 클래스를 만들때 사용한다. 상속을 쓸 때는 다음과 같이 extends 키워드와 함께 사용한다. class B extends A{ } ✔ 상속 하는 클래스 : 상위 클래스, parent class ✔ 상속 받는 클래스 : 하위 클래스, child class ✔ 상위 클래스는 하위 클래스보다 일반적인 의미를 가짐. ✔ 하위 클래스는 상위 클래스보다 구체적인 의미를 가짐. 강의에 나온 예시 코드로 설명..

💡 배열 배열 선언하기 배열은 프로그래밍에서 매우 많이 사용하는 자료구조로, 여러개의 동일한 자료형을 한꺼번에 순차적으로 관리할 수 있다. 일일히 변수를 선언할 수도 있지만 그 수가 많아지면 매우 불편하기 때문에 배열을 사용하는 것이 효율적이다. 인덱스 혹은 첨자연산자[ ]를 사용하여 사용한다. 모든 배열의 순서는 0부터 시작하며, n개 배열은 0부터 n-1위치까지 자료가 존재한다.배열을 선언하는 방법은 두 가지가 있으며, 다음과 같다. // 자료형[] 배열이름 = new 자료형[개수]; int[] arr = new int[10]; // 자료형 배열이름[] = new 자료형[개수]; int arr[] = new int[10]; 또한 배열은 고정된 길이를 가지기 때문에(Fixed-length) 배열을 사용..

💡 static 변수 static 변수는 여러개의 인스턴스가 같은 메모리의 값을 공유하기 위해 사용한다. 인스턴스가 생성될 때 마다 다른 메모리를 가지는 것이 아니라 프로그램이 메모리에 적재(load)될 때 데이터 영역의 메모리에 생성된다. 사용 방법은 다음과 같다. static int serialNum; 예를 들어 다음과 같은 학생 클래스가 있고, 각 학생마다 학번을 10000부터 시작하여 1씩 증가시켜 부여하려면 어떻게 해야할까? public class Student { int studentID; String studentName; } 어떤 기준이 되는 숫자(예시에서는 10000)가 있어야 그 숫자에 +1을 해서 학생1에게 주고, 거기서 또 +1을 해서 학생2에게 줄 수 있을 것이다. 다시말해 그 기..

💡 알고리즘 max( )/min( ) 함수 없이 최곳값, 최솟값 구하기 리스트에서 각 요소들 중 최곳값과 최솟값을 구할 때, 아래와 같이 max( ) 함수와 min( ) 함수를 사용하면 쉽게 구할 수 있다. english_score = [33, 44, 55, 66, 77, 88, 99, 11, 22, 60] print(max(english_score)) # 최곳값 99 출력 print(min(english_score)) # 최솟값 11 출력 그러나 max( ) 함수와 min( ) 함수 없이 구해야한다면 어떻게 해야할까? 먼저 최곳값을 구하는 함수를 아래와 같이 만들었다. 그러나 이 코드를 실행시키니 99라는 숫자가 한 번만 나와야하는데, 세 번이나 출력되었다. 살펴보니 99 이후에 11, 22, 60 이..

💡 모듈 모듈이란? 모듈이란 관련된 변수와 함수를 모아놓은 하나의 프로그램 상자라고 생각하면 된다. 파이썬에 기본적으로 내장되어있는 모듈을 사용하여 여러가지 기능을 사용할 수 있다. 각기 다른 모듈을 부품삼아 하나의 프로그램을 만들 수 있는 것이다. sys 모듈, os 모듈, math 모듈, calendar 모듈, tkinter 모듈, random 모듈 등 수많은 모듈이 존재한다. 이러한 모듈 안에 어떤 것이 있는지 알고 싶다면 아래와 같이 적어주면 된다. import random dir random 모듈을 import 하는 방법에는 두 가지가 있다. 첫 번째는 모듈 전체를 가져오는 방법으로 아래와 같이 작성한다. import random 두 번째는 필요한 모듈만 가져오는 방법으로 아래와 같이 작성한다...