https://sundaland.tistory.com/275 Lesson: Interfaces and Inheritance[Inheritance 1] sundaland.tistory.com 상속 (Inheritance)다른 클래스에서 파생된 클래스를 하위 클래스 (파생/확장/하위 클래스라고도 함)라 한다. 하위 클래스로 파생되는 클래스를 (기본/부모 클래스)라 한다; 슈퍼 클래스가 없는 Object를 제외하고 모든 클래스는 단 하나의 Direct 슈퍼 클래스 (단일 상속)를 갖습니다. 다른 명시적인 슈퍼클래스가 없으면 모든 클래스는 암시적으로 Object의 하위 클래스이다. # Direct 슈퍼 클래스는 상속 계층 구조에서 바로 위 슈퍼 클래스를 의미한다. Direct 슈퍼 클래스 이외의 슈퍼 클래스에 ..
자바 튜토리얼
인터페이스 (Interface)소프트웨어 엔지니어링에는 서로 다른 프로그래머 그룹이 소프트웨어가 상화작용하는 방식을 설명하는 계약(Contact)에 동의하는 것이 중요한 여러 가지 상황이 있다.각 그룹은 다른 그룹의 코드가 어떻게 작성되는지는 전혀 몰라도 자신의 코드를 작성할 수 있어야 한다. 즉 추상화이다.일반적으로 인터페이스는 그러한 계약이다. 게시된 인터페이스를 계속 준사하는 한 언제든지 소프트웨어를 수정할 수 있는 권리는 보유한다 자바에서의 인터페이스자바 프로그래밍 언어에서 인터페이스를 클래스와 유사한 참조 타입이다. 상수, 메서드 시그니, 기본 메서드, 정적 메서드, 중첩 타입 (인터페이스)만을 포함할 수 있다.메서드 본문은 기본 메서드나 정적 메서드에서만 존재한다.클래스에 의해 구현되거나 다른..
https://sundaland.tistory.com/282 Lesson: Classes and Objects 4[Lambda, Enum] sundaland.tistory.com# Predicate는 boolean 값으로 참과 거짓을 반환하는 test 메소드를 가지고 있다.Predicate 프리디케이트 호출 변수명 으로 구성된다. 호출시 객체타입이 일치하지 않아도 컴파일 오류는 발생하지 않지만 런타임때는 오류가 발생한다. 람다 표현식 (Lambda Expressions)익명 클래스의 한 가지 문제는 익명 클래스의 구현이 메서드가 하나가 포함된 인터페이스와 같이 매우 간단한 경우 익명 클래스의 신택스가 다루기 힘들고 명확하지 않게 보일 수 있다.람다 표현식을 사용하면 특정 기능을 메서드 아규먼트로 처리하거..
중첩 클래스 (Nested)한 클래스 내에 다른 클래스를 정의할 수 있다. 이러한 클래스를 중첩 클래스라고 한다.class OuterClass { ... class NestedClass { ... } static class StaticNestedClass { ... }} 중첩 클래스는 중첩 클래스를 포함하고 있는 클래스 멤버이다.비정적(Non-static) 중첩 클래스 (내부 클래스)는 이 클래스를 포함하고 있는 외부 클래스의 다른 멤버에 접근할 수 있으며, 그 멤버들이 private으로 선언되어 있더라도 마찬가지이다.정적(Static) 중첩 클래스는, 이 클래스를 포함하고 있는 외부 클래스의 다른 멤버에 접근할 수 없다.OuterClass의 멤버로서,..
https://sundaland.tistory.com/265 Lesson: Classes and Objects 2 sundaland.tistory.com 객체 (Objects)일반적인 자바 프로그램은 많은 객체를 생성하며, 이 객체들은 메서드를 호출하여 상호 작용한다.이러한 객체 상호 작용을 통해 프로그램은 다양한 작업을 수행할 수 있다.객체가 생성된 목적을 다하면, 해당 객체의 자원을 다른 객체에서 재사용할 수 있도록 회수된다.public class Point { public int x = 0; public int y = 0; // a constructor! public Point(int a, int b) { x = a; y = b; }}public class Rectangle {..
클래스 (Classes)클래스는 맴버 변수(필드), 메서드, 생성자를 선언하여 정의한다.public class Bicycle { // 자전거 클래스는 세 개의 필드를 가집니다. public int cadence; public int gear; public int speed; // 자전거 클래스는 하나의 생성자를 가집니다. public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } // 자전거 클래스는 네 개의 메서드를 가집니다. public void setCadence(int newValue) { ..
https://sundaland.tistory.com/297 Lesson: Object-Oriented Programming Concepts sundaland.tistory.com 객체는 객체 지향 기술을 이해하는 핵심이다.현실세계의 객체는 모두 상태(State)와 행동(Behavior)를 가지고 있으며, 개는 상태(이름, 품종)을 가지고 있고 행동(짖기, 꼬리 흔들기)등을 한다.현실 세계 객체의 상태와 행동을 식별하는 것은 객체 지향 프로그래밍 관점에서 사고하기 시작하는 좋은방법이다. 객체는 상태를 필드(변수)에 저장하고 메서드(함수)를 통해 행동을 외부로 노출한다. 메서드는 객체의 내부 상태에서 작동하며 객체 간의 주요 통신 매커니즘으로 작용한다.내부 상태를 숨기고 모든 상호작용을 객체의 메서드를 통..
# this는 객체(오브젝트)가 보유한 필드(int A, boolean B...)를 가르키는 용도로 사용된다.# 오브젝트 에리어에 있는 오브젝트를 가르킬때 사용하는 포인터# [데이터 타입] [참조변수] = new [생성자](매게변수);# 오브젝트화는 런타임때 발생한다. 컴파일때는 생략된 지원코드를 생성한다. 소스 파일 내부의 명령문은 일반적으로 위에서 아래로, 순서대로 실행된다.그렇기에 제어 흐름 명령문으로 결정, 반복, 분기를 사용하여 실행 순서를 분할하여 프로그램이 조건부로 특정 코드 블록을 실행할 수 있도록 한다.대체로 조건식의 답이 참이면 중괄호({ }) 안의 내용을 실행한다. if 조건문가장 기본적인 조건문으로 조건식의 답이 참이면 중괄호 내부의 내용을 실행한다,내부에 조건문이 하나만 있는 경우..