JAVA

· JAVA
람다식은 익명함수를 생성하기 위한 식으로 객체 지향 보단, 함수 지향 언어에 가깝다. 람다식의 형태는 매개변수를 가진 코드 블럭이지만, 런타임시에는 익명 구현 객체를 생성한다. 람다식 -> 매개 변수를 가진 코드 블록 -> 익명 구현 객체 익명 구현 객체 생성하는 코드 Runnable runnable = new Runnable() { public void run() { ... } } 익명 구현 객체를 람다식으로 표현 하면 Runnable runnable = () -> { ... } 람다식 기본 문법 (타입 매개변수, ...) -> { 실행문; ... } ->기호는 매개변수를 이용해서 중괄호 {}를 실행한다는 뜻으로 해석하면 된다. 기본형 (int a) -> { System.out.println(a); }..
· JAVA
정적 팩토리 메서드란 객체 생성의 역할을 하는 클래스 메소드직접적으로 생성자를 통해 객체를 생성하는것이 아니라 메서드를 통해서 객체를 생성하는 것이다. 생성자와의 차이점1. 이름을 가질 수 있다.- 생성자 : 내부 구조를 잘 알고 있어야 목적에 맞게 객체 생성이 가능하다.- 정적 팩토리 메서드 : 메서드 이름에 객체의 생성 목적을 담을 수 있다. 2. 호출할 때마다 새로운 객체를 생성할 필요가 없다Enum과 같이 자주 사용되는 요쇼의 개수가 정해져 있다면 해당 개수만큼 미리 생성해두고 조회(캐싱)할 수 있는 구조로 만들 수 있다. 3. 하위 자료형 객체를 반환할 수 있다. 4. 객체 생성을 캡슐화할 수 있다.정적 팩토리 메서드가 필요한 경우1. 객체 간 형 변환이 필요한 경우2. 여러번의 객체 생성이 필..
· JAVA
예외란? 사용자의 잘못된 조작이나 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외는 예외처리를 통해 프로그램을 종료하지 않고 정상 실행이 가능하도록 할 수 있다. 1.일반 예외 (컴파일러 체크 예외) 자바 소스를 컴파일 하는 과정에서 예외 처리 코드가 필요한지 검사한다. 예외 처리 코드가 없다면 컴파일 오류 발생 Exception을 상속받음 2.실행예외 컴파일 하는 과정에서 예외처리 코드를 검사하지 않는 예외 RuntimeException을 상속받음 컴파일 시 예외 처리를 확인하냐의 차이일 뿐, 두가지 예외 모두 예외 처리가 필요하다. 개발자가 실행 예외 처리 코드를 작성하지 않았다면 해당 예외 발생시 프로그램이 곧바로 종료된다. 따라서 적재적소에 예외 처리 코드를 제대로 작성해야한다. Nu..
· JAVA
익명객체 익명 객체는 단독으로 생성할 수 없고, 클래스를 상속하거나 인터페이스를 구현해야만 생성할 수 있다 필드의 초기값이나 로컬 변수의 초기값, 매개 변수의 매개값으로 주로 대입된다. 1. 익명 자식 객체 생성 class A { //A클래스의 필드 선언 Parent field = new Parent() { int childField; void childMethod() { { //Parent 메소드를 오버라이딩 @Override void parentMethod() {} }; 익명 자식 객체에 새롭게 정의된 필드와 메서드는 익명 자식 객체 내부에서만 사용되고, 외부에서는 필드와 메소드의 접근할 수 없다. 2. 익명 구현 객체 생성 구현 클래스가 재사용되지 않고, 오로지 해당 필드와 변수의 초기값을 사용하는..
· JAVA
API란? 라이브러리라고 봐도 무방. 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음이다 1. java.lang 패키지 java.lang 패키지에 있는 클래스와 인터페이스는 import 없이 사용할 수 있다. 클래스 용도 Object 자바 클래스의 최상위 클래스 System - 키보드로부터 데이터 입력받을때 - 모니터로 출력하기 위해 - jvm을 종료 시킬때 - 가비지 콜렉터를 실행 요청할 때 Class 클래스를 메모리로 로딩할 때 String 문자열을 저장하고 여러가지 정보를 얻을 때 StringBuffer, StringBuilder 문자열을 저장하고 내부 문자열을 조작할 때 Math 수학 함수를 이용할 때 Wrapper (Byte, Short, Character, Integer, Float..
· JAVA
인터페이스란 인터페이스는 객체의 사용방법을 정의한 타입이다. 인터페이스는 객체의 교환성을 높여준다. 1. 인터페이스의 역할 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발코드 : 메소드 호출 -> 인터페이스 -> 객체의 메소드 호출 -> 객체 개발코드
· JAVA
상속 자식 클래스는 부모 클래스의 필드와 메소드를 이용 가능하다. but 부모 클래스에 private 필드나 메소드는 상속대상에서 제외 된다. 또한 부모 클래스와 자식클래스나 다른 패키지에 존재한다면 default 필드나 메소드는 상속대상에서 제외된다. 1. 부모 생성자 호출 부모 클래스에 기본 생성자가 없고 매개변수가 있는 생성자만 있다면 자식 클래스에서 반드시 부모 생성자 호출을 위해 super(매개값, ...)을 호출해야한다. 2. 메소드 재정의(@Override) 부모 클래스의 메소드 중 자식 메소드에 적합하지 않는 메소드가 있을 수도 있다. 이때, 메소드 오버라이딩을 통해 자식 클래스에서 재정의하여 사용한다. 2.1 메소드 재정의 시 주의사항 - 부모의 메서드와 동일한 리턴타입, 매소드 이름, ..
· JAVA
객체지향 프로그래밍 (OOP) 자바는 객체지향 프로그래밍이다. 이 세상은 모두 객체로 이루어져 있으며 이러한 객체들이 서로 메시지를 주고 받으며 협력함으로써 프로그램을 완성시키는 프로그래밍(OOP) 이라고 볼 수 있다. -> 즉 객체들을 먼저 만들고 -> 조립해서 완성된 프로그램을 만든다! 1. 객체와 클래스 1.1 객체는 무엇일까? 자신의 고유한 속성과 행동을 통해 구별이 가능한 것을 객체라 부른다. 이때 속성을 필드, 행동을 메소드라고 한다. 1.2 객체의 상호작용 객체는 서로 어떻게 상호작용을 할까? -> 메소드 호출! 1.3 객체지향 프로그래밍의 특징 캡슐화 보호가 필요한(외부에서 접근 및 변경을 막기위해) 필드나 메소드를 접근제한자를 통해서 가려두는것! 상속 상위 개체가 가지고있는 필드와 메소..
· JAVA
Lambda 표현식이란? - 익명 메소드를 사용해서 간결한 인터페이스 인스턴스 생성하는 방법이다. - FunctionalInterface 에서 사용가능하다. - 간결하게 표현이 가능하다. @FuncionalInterface public interface MyRunnable { void run(); } public class Main{ public static void main(String[] args){ MyRunnable r1 = new MyRunnable(){ @Override public void run(){ System.out.println("Hello"): } }.run(); //위와 동일한 표현임 //익명 메소드를 사용해서 표현하는 방법 : 람다 표현식 MyRunnable r2 = () -> ..
· JAVA
https://www.delftstack.com/ko/howto/java/private-static-variable-in-java/ Java의 개인 정적 변수 이 자습서는 Java의 개인용 정적 변수를 보여줍니다. www.delftstack.com https://makemethink.tistory.com/184 [Java] final 그게 뭔데, 어떻게 쓰는 건데 자바 API 문서를 뒤적거리다 final이란 키워드를 발견했습니다. 음 이게 뭐였지...? 하고 기억을 더듬어보니 상수 어쩌구 할 때 썼던거 같긴한데.....(흐릿흐릿) final의 정의 위키피디아에 따르면 Java makemethink.tistory.com
born-A
'JAVA' 카테고리의 글 목록