클래스의 후보를 찾아보기"은행은 정기 예금 계좌와 보통 예금 계좌를 제공한다. 고객들은 자신의 계좌에 돈을 입금할 수 있으며 계좌에서 돈을 인출할 수 있다. 그리고 각 계좌는 기간에 따라 이자를 지급한다. 계좌마다 이자는 달라진다."문서에 등장하는 명사가 클래스의 후보
객체들은 상당한 메모리를 차지하기 때문에, 사용이 종료된 객체는 삭제해야한다. 하지만 자바에는 삭제 연산자가 없다. 자바에서는 자동 메모리 삭제 시스템을 사용하는데, 이것을 가비지 컬렉션이라고 한다. tv2가 가리키고 있었던 객체(=Television())는 위의 코드
메소드를 호출할 때, 우리는 메소드(함수)로 데이터(인수, 변수)를 전달할 수 있다. 자바에서 메소드로 인수가 전달되는 방법은 기본적으로 값에 의한 호출이다. 값에 의한 호출에서는 인수의 값이 복사되어 매개 변수로 전달된다. 전달하는 인수가 int나 double 같은
프로그램을 작성하다보면 여러 개의 객체가 하나의 변수를 공유해야되는 경우가 있다. 이러한 멤버를 정적 멤버(static member) 또는 클래스 멤버라고 한다. 필드(변수)를 정의할 때 static을 붙이면 정적 멤버가 된다. 프로그램에서 객체들마다 개별적으로 소유해
객체를 저장하는 배열도 만들 수 있다. 자바에서는 자주 사용됨. 정수형 배열과는 다르다. 정수형 배열에는 정수값이 저장되어 있지만, 객체 배열에는 객체에 대한 참조값(주소)이 저장되어있다. Rect[] list; - 참조 변수 선언 자바에서는 배열이 객체이다. 따라
대망의 상속상속은 기존에 존재하는 클래스로부터 필드와 메소드를 이어받고, 필요한 기능을 추가할 수 있는 기법이다. 상속하는 클래스를 부모 클래스, 자식 클래스를 서브 클래스라고 한다.=> ElectricCar 자식 클래스 또는 서브 클래스 / Car 부모 클래스 또는
앞에서는 부모 클래스의 모든 멤버가 상속되는 것으로 이야기하였지만, 사실은 상속시킬 멤버와 상속시키지 않을 멤버를 지정할 수 있다. private 멤버는 상속되지 않고, default/protected/private 멤버가 상속됨.자식 클래스의 객체가 생성될 때, 자식
자식 클래스는 부모 클래스의 메소드를 상속 받아서 사용할 수 있다. 하지만 그대로가 아니고 변경해서 사용하고 싶은 메소드가 있을 수 있다. 메소드 오버라이딩이란 자식 클래스가 부모 클래스의 메소드를 자신의 필요에 맞추어서 재정의하는 것이다. 이때 메소드 이름이나 매개
다형성은 동일한 코드로 다양한 타입의 객체를 처리하는 기법을 의미함. 넓은 의미에서는 메소드 오버로딩, 오버라이딩, 제네릭 프로그래밍도 다형성에 포함된다. 업캐스팅예시Rectangle 타입의 객체를 Shape 타입의 변수로 참조하는 문장은 얼핏 오류로 보인다. 그러나
정리했는데 다 날아감... 다음에 다시 해볼게...
구성 및 상속은 모두 클래스를 연결하여 코드 재사용성을 제공한다.상속은 한 클래스를 다른 클래스에서 파생시키는 반면, 구성은 하나의 클래스를 다른 클래스의 합으로 정의한다. 상속 관계에서 부모 클래스를 변경하면 코드가 손상될 위험이 있다. 구성을 통해 생성된 클래스와
추상 클래스는 완전하게 구현되어있지 않은 메소드를 가지고 있는 클래스를 의미한다. 메소드가 미완성되어 있으므로 추상 클래스로는 객체를 생성할 수 없다. 추상 클래스는 객체를 만들려고 하는 게 아니라, 상속 받는 다른 클래스를 만드는게 목적임.예를 들면 동물을 Anima
하드웨어에서 인터페이스는 서로 다른 장치들이 연결되어서 데이터를 주고받는 규격을 의미한다. 예를 들면 USB가 규격을 지키기 때문에 어느 장치에나 꽂아서 사용할 수가 있다.자바에도 인터페이스 개념이 존재한다. 여러 프로그래머들이 독립적으로 클래스를 작성하고, 이 클래스
인터페이스끼리도 상속이 가능하다. RemoteControl을 다시 보자.여기에 또 메소드를 추가하면 어떻게 될까?만약 다른 프로그래머들이 사용하고 있던 인터페이스를 변경시키면 이 인터페이스를 구현하였던 모든 클래스가 동작하지 않게 된다. 이런 경우를 대비해서 인터페이스
패키지가 모여있는데 main이 있으면 프로그램 아니면 라이브러리패키지들의 모임을 빌드하면 -> .jar 파일근데 다른 폴더에 있으면 완전 다른 프로젝트니까 내 프로젝트에서 쓸수가 없겠지 그래서 설정하는게 class path명령어를 써서 빌드 -> 근데 요새는 빌드 도구
클래스가 모이면 패키지.패키지가 모였을 때 main이 있으면 프로그램, 없으면 라이브러리. 1\. 완전한 이름으로 참조한다지금까지는 클래스 이름만 가지고 클래스를 참조하였다. 만약 같은 패키지 안에 있는 클래스라면 이름만 가지고 참조할 수 있다.그러나 외부 패키지에 있
어떤 프로그램이든지 오류가 있을 수 있다. 예를 들어 배열의 인덱스가 배열의 한계를 넘거나, 디스크에서 하드웨어 에러가 발생할 수도 있다. 자바에서는 이러한 오류를 예외라는 이름으로 부른다. 일반적인 경우, 오류가 발생하면 프로그램이 종료된다. 그러나 무조건 종료하는
이벤트 구동 프로그래밍클래스 내부에서 크랠스 사용 - 자바- 인터페이스(Acp()) - OS오에스에서 이벤트 발생 -> acp() -> 자바에서 리스너 실행이벤트등록 addactionlistenter : os 리스너에게 어떤 버튼이 클릭됐을때 어떤 콜백 메소드를 실행할