전체 글 (141) 썸네일형 리스트형 GUI프로그램 import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; /** * GUI프로그램 순서 * 1. 이벤트소스(bt)와 이벤트종류(ActionEvent)를 결정한다 * 2. 이벤트처리용 클래스(이벤트핸들러)를 작성한다 * class MyHandler implements ActionListener{ * } * 3. 이벤트소스와 이벤트핸들러를 연결한다 * bt.addActionListener.. 인터페이스 예시 package com.my.product.dao; import com.my.exception.AddException; import com.my.product.dto.Product; public interface ProductDAOInterface {// 모든 메서드는 추상메서드 /** * 상품을 저장소에 저장한다. 저장소가 꽉찬 경우 "저장소가 꽉찼습니다" 메시지가 출력되고 저장안된다. * @param product 상품 */ void insert(Product product) throws AddException ;// abstract가 생략된 형태 = public abstract void insert(Product product);와 같음 // 부모 자식 동일해야해서 throws AddException.. 인터페이스(Interface) ※ 인터페이스 시스템에 접속할 수 있는 장치. 병행작업을 위해 인터페이스를 먼저 만들어야 한다. 제공하는 라이브러리에 접속하기 위해서 중간매개체 역할하는게 인터페이스. 사용자 입장에서 사용할때도, 제공자 입장에서 제공할 때, 접속 장치도 인터페이스 봄 인터페이스는 모든 메서드가 추상 메서드(abstract method)로 선언되어야 함. 추상 메서드는 메서드의 시그니처(메서드 이름, 매개변수, 리턴 타입)만 선언되고, 본체가 없는 메서드. 인터페이스의 메서드는 구현부가 없기 때문에 하위 클래스에서 반드시 구현해야 한다. 인터페이스의 모든 메서드가 추상 메서드로 선언되는 이유는 인터페이스가 일종의 계약(contract)을 정의하는 것이기 때문입니다. 인터페이스를 구현하는 클래스는 해당 인터페이스의 모든 메.. 클래스의 용도 클래스의 용도 일반클래스 final클래스 abstract클래스 - 객체를 만드는 틀 ○ ○ X - 하위클래스들의 공통점을 모아둔다 ○ X ○ final/abstract 예약어 붙이는 클래스, abstract ↔ final 서로 반대개념 public abstract final class A{ } 이렇게 사용은 절대 불가능하다 ※ final 클래스 public final class String → 이 string으로부터 상속받는 하위클래스 만들지 않겠다 public class MyString extends String{ } X final : 끝이다. final을 선언하면 상속 금지 변수, class,메서드 앞에 final 붙으면 끝이란 뜻 변수 앞에 final 붙으면 변수값 변경금지 class 앞에 fina.. 이클립스 Source로 메서드 작성하기 관례적으로 멤버변수 생성자 메서드 순서 상속과 생성자 this 현재 객체 this() 매개변수가 다른 생성자 호출, 생성자의 first statement에 위치 super 현재 객체의 부모영역 super() 부모생성자 호출, 생성자의 first statement에 위치 class ParentConstructor { // cf) class가 compile 될 때 아무것도 없으면 default 생성자 만들어질 것 ParentConstructor(){ System.out.println("ParentConstructor()생성자가 호출됨"); } ParentConstructor(String name) { System.out.println("ParentConstructor(" + name + ")생성자가 호출됨"); } } class ChildConstructor .. 메서드 오버라이딩 cf) 메서드 오버로드 조건 - 메서드 이름 동일 - 매개변수갯수 다르거나, 순서 다르거나, 자료형이 다르다 ※ 메서드 오버라이딩 조건 - 상속관계 - 메서드이름 동일, 매개변수 동일, 반환형 동일해야한다. - 접근범위는 부모메서드 접근범위보다 업캐스팅(Upcasting), 다운캐스팅(Downcasting) ※ 업캐스팅(Upcasting) 업캐스팅은 객체 지향 프로그래밍에서 객체의 형식을 변환하는 것. 하위 클래스 객체를 상위 클래스 타입으로 변환하는 것 즉, 자식 클래스의 객체를 부모 클래스의 객체로 변환하는 것입니다. 업캐스팅은 상속 관계에서 발생하며, 부모 클래스의 참조 변수로 자식 클래스의 객체를 다루는 것을 의미합니다. 이렇게 업캐스팅된 객체는 부모 클래스의 타입으로 사용될 수 있으며, 부모 클래스에 정의된 멤버들만 접근할 수 있습니다. 업캐스팅을 통해 부모 클래스로부터 상속된 기능들만 접근 가능하게 됩니다. 업캐스팅은 묵시적으로 수행됩니다. 즉, 자식 클래스 객체를 부모 클래스 참조 변수로 할당할 때 별도의 캐스팅 작업이 필요하지 않습니다. 업캐스팅은 객체지향 프로그래밍에서 다형성을 구현하는데 도.. 이전 1 ··· 10 11 12 13 14 15 16 ··· 18 다음