본문 바로가기
728x90
반응형

Skills/Java6

객체지향의 5원칙 SOLID SRP SRP, 단일 책임 원칙, Single Responsibility Principle, 객체는 오직 하나의 책임을 가져야 한다. OCP OCP, 개방-폐쇄 원칙, Open-Closed Principle, 객체는 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다는 원칙이다. 즉, 새로운 코드를 생성하는 것은 개방하고 기존 코드를 수정하는 것은 폐쇄해야 한다. DIP가 선행되어야 한다. 유지보수에 편리하다. LSP LSP, 리스코프 치환 원칙, Liskov Substitution Principle, 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙이다. 즉 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 계획대로 잘 작동해야 한다는 것. 상속의 본질인데, 이를 지키지 않으면.. 2023. 1. 29.
인스턴스 메서드, 클래스 메서드 ◇ 인스턴스 메서드 : 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는 데 인스턴스 변수를 필요로 하는 메서드이다. ◇ 클래스 메서드(static method) : 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메서드를 사용하지 않는) 메서드이다. static 변수는 인스턴스를 생성하지 않아도 사용 가능하다. 반대로 클래스 메서드는 인스턴스 변수를 사용할 수 없다. ◇ static을 붙이는 경우 1. 멤버변수 중 모든 인스턴스에 공통으로 사용하는 경우 2. 메서드 내에서 인스턴스 변수를 사용하지 않는 경우 같은 클래스에 속한 멤버들 간에는 별도의 인스턴스를 생성하지 않고도 서로 참조 또는 호출이 가능하다. 단, 클래스멤버가 인스턴스 멤버를 참조 또는 호출하고자 하는 경우에는 인스턴스를 생.. 2022. 12. 19.
오버로딩 ○오버로딩 : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것. ○오버로딩의 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. (이때, 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못함) ○오버로딩의 장점 1. 하나의 이름으로 정의되어 기억하기 쉬워 오류의 가능성을 줄인다. 2. 메서드의 이름만 보고 기능을 예측할 수 있다. 3. 메서드의 이름을 절약할 수 있다. void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void println(int x) void println(.. 2022. 12. 16.
클래스변수, 인스턴스변수, 지역변수 변수의 종류 선언위치 생성시기 클래스변수(static이 붙은 변수) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스변수 인스턴스가 생성되었을 때 지역변수 클래스 영역 이외의 영역(메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 ▷클래스변수 : 모든 인스턴스가 공통된 저장공간(변수)를 공유, 인스턴스를 생성하지 않고도 언제라도 바로 사용할 수 있다, public을 앞에 붙이면 어디서나 접근할 수 있는 '전역변수'의 성격을 가짐. ▷인스턴스변수 : 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가짐, 인스턴스마다 고유한 상태를 유지해야 하는 속성의 경우, 인스턴스변수로 선언. ▷지역변수: 메서드 내에서만 사용 가능하며, 메서드가 종료되면 소멸되어 사용할 수 없게 됨. 인스턴스 변.. 2022. 12. 16.
객체지향이론, 클래스, 객체, 인스턴스 객체지향이론 : '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물(객체)간의 상호작용이다. 자바는 절차적 언어가 아닌 객체지향 언어이다. 객체지향언어의 장점은 코드의 재사용성이 높고 유지보수가 용이하다. ● 클래스 : 객체의 설계도, 틀 ● 객체 : 실제로 존재하는 사물 또는 개념 ● 인스턴스 : 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 결국 인스턴스는 객체와 같은 의미이지만, 객체는 포괄적인 의미를 갖고 있고, 인스턴스는 구체적인 의미를 갖고 있다. 객체의 구성요소 - 속성과 기능 ● 속성 : 멤버변수, 특성, 필드, 상태(모두 같은 의미) ● 기능 : 메서드, 함수, 행위(모두 같은 의미.. 2022. 12. 16.
점프 투 자바 정리 (1) (자바와 자료형) 자바 시작하기 자바의 특징 자바를 개발한 선 마이크로 시스템즈는 자바를 아래와 같이 정의하였다. Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language 자바: 간단하다, 객체 지향적이다, 인터프리터 언어이다, 강력하다, 안전하다, 플랫폼 독립적이다, 멀티 쓰레딩을 지원한다, 동적이다 이 중 다음 두 가지는 꼭 기억하자. 객체 지향적이다 (Object-oriented) 자바는 숫자(int, float, long 등)나 논리값(true, false)을 제외한 거의 모든 것이 객체.. 2022. 10. 21.
728x90
반응형