람다 (Lambda) 메서드를 하나의 식으로 표현한 것 (≒ 함수 (메서드)를 간단히 표현하는 것) 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수'라고도 한다. 작성법 메서드 이름과 반환타입을 제거하고 매개 변수 선언부와 몸통 {} 사이에 '→' 추가한다. ※ 매개 변수 선언부의 타입을 일부만 생략하는 것은 허용되지 않는다. ※ 몸통 { } 안의 문장이 return 문일 경우 괄호를 { } 생략할 수 없다. // 기본 메서드 선언 반환타입 메서드이름 (매개변수 선언) { 문장들 } // 람다식 (매개변수 선언) -> { 문장들 } 예시 // 일반 메서드 int max(int a, int b){ return a > b ? a : b; } // 람다식 표현 (int ..
쓰레드 Thread 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 (쉽게 비유하면 일꾼?) 두 개이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스라고 한다. 실행 중인 사용자 쓰레드(user thread)가 하나도 없을 때 프로그램은 종료된다. java의 main메서드도 main쓰레드이다. 쓰레드 구현 1. Thread 클래스를 상속받는법 → Thread 클래스를 상속받으면 다른 클래스를 상속 받을 수 없다. (단일상속) 인스턴스 생성 방법 → Thread의 자손 클래스의 인스턴스를 생성한다. class MyThread extends Thread { public void run() { /* 작업내용 */ } // Thread 클래스의 run()메소드를 오버라이딩 } class ThreadEx1 ..
인터페이스 (interface) 추상을 미완성 설계도라고 본다면 인터페이스는 설계도이며, 보통(?) 다른 클래스를 쓸 때 도움을 주기 위해 사용된다. 모든 멤버변수는 상수와 추상 메서드만 가질 수 있다. ※ jdk1.8 부터 static 메서드와 디폴트(default) 메서드도 가질 수 있게 되었다. 다중 상속이 가능하다. 클래스 작성과 같이 인터페이스 이름 앞에 키워드 'interface'를 작성하면 된다. interface 인터페이스이름 { public static final 타입 상수이름 = 값 ; // 상수 public abstract 메서드 이름(매개변수 목록); // 추상메서드이기 때문에 {} 없음 } 인터페이스는 인스턴스 생성이 안되며 implements로 다른 클래스에서 구현한다. inte..
추상 클래스 abstract class 여러 클래스에 공통적으로 사용될 수 있는 클래스를 바로 작성하기도하며, 기존 클래스들의 공통적인 부분을 뽑아 추상클래스로 만들어 상속하는 경우도 있다. 추상 클래스는 미완성 메서드를 포함하고 있다. 추상 클래스는 상속을 통해 구현해주어야 한다. 추상 클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있기 때문에 조상클래스로 중요한 의미가 있다. 추상 클래스를 선언하는 방법은 클래스 앞에 키워드 'abstract'를 붙이면 된다. // abstract class 클래스 이름 {} abstract class Player { abstract void play (int pos); // 추상 메서드 abstract void stop(); // 추상 메서드 } 추상 메서..
제어자 (modifier) 제어자 (modifier)는 클래스, 변수, 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여 제어자의 종류는 접근 제어자와 그 외 제어자로 나눌 수 있다. 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능 단, 접근 제어자는 4가지 중 하나만 선택해서 사용할 수 있다. 접근 제어자는 멤버 또는 클래스에 사용되어 해당 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역활을 한다. 접근 제어자 public, protected, default, private (4가지 중 1개만 사용 가능) 그 외 제어자 static, fianl, abstract, native, transient, synchronized, vol..
오버 라이딩 (overriding) 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 오버 라이딩 조건 선언부가 서로 일치해야 한다. 자손 클래스에서 오버 라이딩하는 메서드는 조상 클래스의 메서드와 이름, 매개변수, 반환 타입이 같아야 한다. ※ 단, 접근 제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다. 다시 한 번 집고가는 오버로딩과 오버라이딩 차이 오버로딩 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 (메서드 이름이 같아야하며, 매개변수의 개수 또는 타입이 달라야한다) 오버라이딩 상속받은 메서드의 내용을 변경하는 것 (선언부가 일치해야한다) class Parent { void parentMethod() {} } class Child exten..
상속 (inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. 상속을 통해서 코드의 재사용성을 높이고, 코드의 중복을 제거하여 프로그램의 생산성과 유지 보수에 크게 기여한다. 상속 구현하는 법 조상클래스와 자식 클래스 사이에 'extends'를 넣어주면되는데, 위치가 중요하다. → 새로 작성할 클래스 이름(Child) extends 상속 받을 클래스 이름 (Parent) class Parent {} class Child extends Parent {} 자손 클래스(Child)는 조상 클래스(Parent)의 모든 멤버를 상속받기 때문에 Child 클래스는 Parent클래스의 멤버들을 포함한다고 할 수 있다. 단 자손 클래스가 변경되는 것은 조상 클래스에 아무런 영향을 주지 못한다...
생성자 (constructor) 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 말 그대로 인스턴스 변수의 초기화 작업에 주로 사용된다. 생성자도 메서드이기 때문에 클래스 내에 선언되며, 리턴 값이 없다. 또한 생성자도 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. ※ 생성자도 메서드이기 때문에 리턴값이 없으면 void를 붙여야 하지만, 모든 생성자가 리턴 값이 없기 때문에 void를 생략할 수 있다. 클래스 이름(타입 변수명, 타입 변수명, ...) { //인스턴스 생성 시 수행될 코드 // 주로 인스턴스 변수의 초기화 코드를 적는다. } class Card { // 생성자도 ..
오버 로딩 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버 로딩(method overloading)' 또는 '오버 로딩(overloading)'이라고 한다. 오버 로딩 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. ※ 반환 타입은 오버 로딩을 구현하는데 아무런 영향을 주지 못한다. 오버 로딩의 대표적인 예 오버로딩의 대표적인 예로는 println 메서드가 있는데, PrintStream클래스에는 어떤 종류의 매개변수를 지정해도 출력할 수 있도록 아래 10개의 오버 로딩된 println 메서드를 정의해놓고 있다. 즉, println 메서드를 호출할 때 매개변수로 넘겨주는 값의 타입에 따라서 아래 오버 로딩된 메서드들 중의 하나가 선택되어 실..

기본형 매개변수와 참조형 매개변수 기본형 매개변수 기본형 매개변수는 이전에 공부했던 변수타입의 기본형처럼 변수의 실제 값이 저장되고, stack 영역에 저장된다. 예시 int x = 10; char t = "a"; 참조형 매개변수 매개변수이고 참조형 매개변수는 인스턴스의 주소값이 저장되는 매개변수이다. 참조형 매개변수 0X100 같은 메모리의 주소값 따라서 주소를 알고 있기 때문에 해당 값을 변경할 수 있다. 참조형 변수는 기본형 변수와는 다르게 실제 값을 그대로 저장하는 공간이 아니라 Heap영역에 값이 저장된 공간의 주소 값을 저장하는 공간이라는 것이다. 예시 class MyMath { long add(long a, long b) { // a,b는 매개변수 return a + b; } long sub..
- Total
- Today
- Yesterday
- git 공부
- authenticate()
- musma
- django.contrib.auth
- 검색 결과 내 페이지네이션
- path variable
- 면접을 위한 CS 전공 지식 노트
- 디자인 패턴
- django
- git
- 회원가입
- 혼자 공부하는 파이썬
- 배열
- 회원 로그인
- API
- Django tutorial
- Java
- Python
- Magazine K
- Spring
- error: failed to push some refs to 'https://github.com/
- 암호화
- 웹페이지
- 커맨드 객체
- 톰캣
- django-environ
- git공부
- 한글 형태소 분석기
- 환경 변수 설정
- python3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |