Programming/Java
-
static 메서드와 인스턴스 메서드Programming/Java 2021. 10. 7. 04:03
예제 코드 : https://github.com/khg620/Java-Basic/commit/d3c03c002ca6c9cb4d4739330aa5674d8b303e21 클래스 메서드(static method)와 인스턴스 메서드 · khg620/Java-Basic@d3c03c0 Permalink This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. Browse files 클래스 메서드(static method)와 인스턴스 메서드 Loading branch information Showing 2 changed files with 40 github.com 공부 자..
-
롬복 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructorProgramming/Java 2021. 9. 18. 03:50
@NoArgsConstructor 매개변수가 없는 생성자를 만든다 그런데 만약 (예를 들어 final 필드로 인해) 매개변수가 없는 생성자를 만드는 것이 불가한 경우에는 컴파일 에러 발생(@NoArgsConstructor(force = true)로 설정하여 final 필드들을 0 / false / null 로 초기화 하지 않는 한) 주로 @Data 또는 다른 생성자 어노테이션들과 조합하여 유용하게 사용된다. @NonNull과 같이 필드 제약조건이 있는 경우, 필드가 적절히 초기화 되지 않는 한 제약조건 로직이 실행되지 않는다. @RequiredArgsConstructor 초기화되지 않은 final 필드, 초기화되지 않은 @NonNull 필드에 대한 파라미터 생성자 각각의 필드 당 하나의 매개변수를 받는 ..
-
추상클래스(abstract class)Programming/Java 2021. 8. 23. 11:17
추상 개념 추상화 : 공통되는 속성을 추출해 조상클래스를 만든다 ※ 구체화 : 조상 클래스를 사용해 자손 클래스를 만든다.(상속) abstract 키워드를 붙인다. 추상클래스 미완성 클래스 -> new 명령문으로 인스턴스 생성 불가 자손클래스에 의해서만 완성될 수 있다. 자체로는 클래스로서의 역할을 온전히 할 수 없으나 새로운 클래스들을 작성 시 틀이 되는 조상클래스로서 중요한 의미를 가짐 추상메서드를 한 개 이상 가진 클래스 클래스 선언부에 abstract 반드시 명시 추상메서드 (abstract method) 미완성 메서드 메서드 선언부만 있고 구현부(본문)가 없다({ } 블록 자체가 없음) 설계만 해놓고 실제 수행될 내용은 자손클래스에서 구현하도록 비워둔다. 메서드 선언부에 abstract 명시 추..
-
제어자의 조합Programming/Java 2021. 8. 9. 23:20
1. 메서드에 static과 abstract를 함께 사용할 수 없다. 이유 : static메서드는 구현부가 있어야 한다. 그러나 abstract메서드는 구현부가 없다. 2. 클래스에 abstract와 final을 동시에 사용할 수 없다. 이유 : final은 클래스를 확장할 수 없음을 뜻하는데, abstract는 상속을 통해서 완성이 되어야 하므로 서로 모순이다. 3. abstract메서드의 접근 제어자가 private일 수 없다. 이유 : abstract메서드는 자손 클래스에서 구현해주어야 하므로 private으로 접근을 못하게 막으면 안 된다. 4. 메서드에 private와 final을 같이 사용할 필요는 없다. 이유 : 접근제어자가 private인 메서드는 오버라이딩이 불가하므로 둘 중 하나만 사용..
-
접근제어자Programming/Java 2021. 8. 9. 20:11
접근제어자 클래스, 멤버변수, 메서드, 생성자에 사용 -> 외부에서의 접근을 제한하는 용도 접근제어자별 접근 가능 범위 제어자 같은 클래스 같은 패키지 자손클래스 전체 public ○ ○ ○ ○ protected ○ ○ ○ default ○ ○ private ○ ※ protected는 패키지 관계 없이 상속관계의 자손 클래스에서 접근하도록 제한하는 것이 목적이나, 같은 패키지 내에서는 상속 관계가 아니어도 접근 가능 사용 가능한 접근 제어자 대상 사용 가능한 접근제어자 클래스 public, default 메서드 public, protected, default, private 멤버변수 지역변수 없다 접근제어자를 사용하는 이유 : 캡슐화 1. 외부로부터 데이터를 보호 2. 외부에는 불필요, 내부적으로만 사용..
-
제어자 modifierProgramming/Java 2021. 8. 9. 11:18
제어자 클래스, 멤버변수, 메서드 선언부에 사용하여 부가적인 의미 부여 접근제어자 : public, protected, default, private (조합하여 사용 불가) 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp(다른 제어자와 조합 가능) static 사용되는 위치 : 멤버변수, 메서드, 초기화블럭 제어자 대상 의미 static 멤버변수 모든 인스턴스에 공통적으로 사용되는 클래스 변수 (모든 인스턴스에서 공통으로 유지해야 하는 값이 있는 경우 static을 붙이자) 클래스가 메모리에 로드 시 생성됨 -> 클래스변수는 인스턴스 생성하지 않고 사용 가능 메서드 인스턴스를 생성하지 않고 호출 가..
-
다형성Programming/Java 2021. 8. 2. 11:04
객체지향 프로그램을 객체들 간 메시지를 주고받고 상호작용하는 협력 관계로 설계/바라보는 관점 객체지향 특징 추상화, 캡슐, 상속, 다형성 다형성 참조변수의 다형성 상속 관계/개념으로부터 다형성이 나온다 조상클래스 타입 참조변수로 여러 자손 타입 인스턴스를 참조할 수 있는 것 같은 타입의 인스턴스라도, 참조변수 타입에 따라 사용할 수 있는 멤버의 개수가 달라진다. (참고 : 모든 참조변수는 null 또는 4byte 주소값이 저장되며, 참조변수의 타입은 참조할 수 있는 객체의 타입과 사용할 수 있는 멤버의 수를 결정한다.) 자손타입 참조변수로 조상타입 인스턴스를 참조할 수는 없다. 이유 자손타입 참조변수로 조상타입 인스턴스를 참조하면 존재하지 않는 멤버를 사용할 가능성이 있으므로 ※ 클래스는 상속을 통해 확..
-
프로그래밍 언어의 분류Programming/Java 2021. 7. 31. 21:52
1. 개발 편의성에 따라 종류 설명 저급언어 기계가 이해할 수 있도록 만들어진 언어 (기계어, 어셈블리어) 고급언어 개발자가 이해하기 쉽도록 작성된 언어 (C, C++, 자바, 파이썬) 2. 실행하는 방식에 따라 종류 설명 명령형 언어 명령어들을 순차적으로 실행하는 프로그래밍 방식 (절차형 언어라고도 한다) FORTRAN, COBOL, PASCAL, C 객체지향 언어 객체 간 메시지 통신을 이용해 프로그래밍 하는 방식 JAVA, C++ 함수형 언어 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식 LISP 논리형 언어 논리 문장을 이용해 프로그램 표현, 계산 수행 개념에 기반한 방식 프롤로그 3. 구현 기법에 따른 분류 종류 설명 컴파일 방식 언어 고급언어를 기계어로 번역 컴파일러에 의해 실..