목록분류 전체보기 (231)
도찐개찐
"상속"을 공부하기전 사전에 알아두면 좋은 지식 인터페이스(Interface) : 사전적 의미로는 “전기 신호의 변환(變換)으로 중앙 처리 장치와 그 주변 장치를 서로 잇는 부분. 또는, 그 접속 장치.” USB, C-type, 콘센트, 전구 와 같은 것을 떠올려 주시면 됩니다. 각 기관 및 협회등에서 설정한 규격에 맞춘 설계도(어떠한 동작을 설계하지는 않음)를 제공하고 일반 기업에서 판매목적으로 해당 규격의 상품에 특별한 기능을 구현하여 판매 함으로써 상품의 규격화등을 통한 비용 절감, 편의, 개발기간 단축등의 이점을 볼수 있습니다. (ex : 예전 아이폰에선 5핀, 8핀등의 자체적인 접속장치를 사용 하여 비규격에 따른 불편함을 느꼇습니다.) 개발 부분에서는 프레임워크, 라이브러리, 프로젝트 리더급 개..
초기화가 복잡하다보면 초기화블럭을 통해 코드를 단순하게 짤 수 있는 장점이 있습니다. 초기화블럭은 클래스초기화블럭, 인스턴스초기화블럭 두 개가 있는데요, 차근차근 알아보겠습니다. 1. 클래스 초기화 블럭 클래스 초기화 블럭은 처음에 한 번만 실행되며, 일반 인스턴스 블럭에 static만 붙여주면 클래스 초기화 블럭이 완성됩니다. 2. 인스턴스 초기화 블럭 인스턴스 초기화블럭은 인스턴스를 생성할 때마다 수행되며, 블럭 내에 수행문장을 적어주면 블럭은 완성됩니다. public class Test { int test1; String test2; static { System.out.println("static 클래스"); } { System.out.println("인스턴스 테스트"); } Test() { Sys..
변수는 선언위치에 따라 종류가 다릅니다. 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있습니다. '선언된 따라 종류가 결정되므로 어느 영역에 선언되었는지 파악하는 게 중요합니다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static 이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스 변수입니다. 예시) public class varExam { int instanceVariable; //인스턴스변수 static int classVariable; //클래스변수 (static변수, 공유변수) void method(){ int localVariable; //지역변수 } } 인스턴스 변수(instance vairable) - 클래스 영역에 선언 - 클래스 인스턴스를 '생성할 때' ..
static 객체의 개수와 상관 없이 한번만 생성되며, 모든 객체가 공유하는 멤버 필드, 메서드 적용할 수 있습니다. Static 메서드 영역에서 객체형 멤버를 접근할 수 없습니다. Static 멤버는 객체 참조로 접근할 수 없고 class로 접근해야 합니다. final 값 변경이 불가능한 멤버 필드초기화, 생성자 영역에서 값 변경 가능 static final 값 변경이 불가능한 static 멤버 필드초기화영역에서만값변경가능 – 필드 초기화는 필수 1. Static static은 "고정된" 이라는 의미 객체 생성 없이 사용할 수 있는 필드와 메소드를 생성하고자 할 때 활용한다. 필드나 메소드를 객체마다 다르게 가져야 한다면 인스턴스로 생성하면 되고 공용 데이터에 해당하거나 인스턴스 필드를 포함하지 않는 ..
생성자란? 인스턴스가 생성될 때마다 자동으로 호출되는 ‘인스턴스 초기화 메서드’ 인스턴스 변수의 초기화 또는 인스턴스 생성시 수행할 작업에 사용. 몇 가지 조건을 제외하고는 메서드와 같다. 메서드와 다른 점 생성자의 이름은 반드시 클래스명과 동일해야한다 리턴타입을 기술하지 않는다 (void 도 사용하지 않음) 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. * 인스턴스 초기화 – 인스턴스 변수에 적절한 값을 저장하는 것. 클래스이름(타입 변수명, 타입 변수명, ... ) { // 인스턴스 생성시 수행될 코드 // 주로 인스턴스 변수의 초기화 코드를 적는다. } class Card { Card() { // 매개변수가 없는 생성자. // 인스턴스 초기화 작업 } Card(String kind, i..
접근 지정자 자바에서는 public, protected, private 그리고 접근 지정자를 생략하는 default, 이렇게 총 4개의 접근 지정자를 두고 있다. 또한 이 접근 지정자는 클래스와 멤버에 사용할 수 있다. 다만 클래스에는 private과 protected 접근 지정자는 적용되지 않는다. 접근 지정자 접근 범위 public 무제한 private 동일 클래스 default 동일클래스, 동일패키지 protected 동일클래스,동일패키지,다른패키지의상속클래스 접근 지정자와 클래스 public과 클래스 클래스가 public 접근 지정자로 선언되면 아래처럼 다른 어떤 클래스에서도 사용할 수 있게 된다. public class MadPlay { /* * MadPlay 클래스가 public으로 선언되어 ..
프로그래밍을 하다보면 추상화를 이용하고, 응집도가 높고 결합도는 낮은 애플리케이션을 개발해야 한다는 얘기를 많이 듣습니다. 그래서 이번에는 객체 지향 프로그래밍의 핵심 특징들인 캡슐화, 응집도, 결합도에 대해 알아보고자 합니다. 아래의 내용들은 클린 코드, 오브젝트 등에서 참고한 내용들이 많이 있습니다. 1. 캡슐화(Encapsulation) [ 캡슐화(Encapsulation) ] 객체지향 프로그래밍이 강력한 이유는 요구사항이 새롭게 추가되거나 바뀌어도 변경이 전파되지 않도록 막을 수 있는 장치들을 제공하기 때문이다. 그리고 이를 위한 대표적인 장치 중 하나가 캡슐화이다. 캡슐화를 이해하기 위해서는 퍼블릭 인터페이스와 구현에 대해 알아야 한다. 객체의 행동은 크게 퍼블릭 인터페이스(public Inte..
이클립스 단축키 Mac Window 설명 이동 Command+객체클릭 Ctrl+객체클릭 변수나 클래스 등을 정의한 곳으로 이동 Command+Shift+G Ctrl+Shift+G 변수나 함수 등을 레퍼런스 하는 곳으로 이동 Option+LEFT Alt+LEFT 이전 커서 위치로 이동 Option+RIGHT Alt+RIGHT 다음 커서 위치로 이동 찾기 Command+Option+G Ctrl+Alt+G 전체 workspace에서 문자열 찾기 Command+K Ctrl+K 선택한 문자열을 파일 내에서 찾기 Command+Shift+K Ctrl+Shift+K 선택한 문자열을 파일 내에서 역순으로 찾기 주석 Command+Shift+/ Ctrl+Shift+/ 블록을 블록 주석으로 처리 Command+Shift+..