본문 바로가기

JAVA

(14)
Inner class & Anonymous class with JAVA & Kotlin 목차 1. 중첩클래스란? 2. 왜 사용하는가? 3. 종류 3.1 Member Inner Class 3.2 Anonymous inner class(익명 클래스) 3.3 local inner class(내부 클래스) 3.4 static nested inner class 1. 중첩클래스란? 객체 지향 프로그램에서 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 한다. 중첩 클래스란 클래스 내부에 선언한 클래스를 말하는데 쉽게 말해 클래스내에 또 다른 클래스를 구성함을 뜻한다. ※ 주의 : 메소드 내에는 다른 메소드를 정의 할 수 없음!! class A{ //외부클래스, Outer클래스, Top-level클래스 //필드 //메소드 //1차 자원 정의 int i=11; void hello(){ print(); (X..
#11 PersonMenu MVC, Thread(스레드) 1. 모델 com.encore.person.model - Person.java (자바빈) : 필드(int no, String name, int age, String job) - Model.java (데이터 관련 기능을 정의) : 필드 (Vector - 데이터 저장소) ==> 메소드 : 추가 insert, 삭제 delete, 수정 update, 조회 select 2. 뷰 com.encore.person.view - MainView.java (시작 뷰, JTable을 통해 사람정보 출력) 필드 : JTable table JButton bt_insert, bt_del, bt_update, bt_exit - InputForm.java (사람정보 입력) - 타이틀: 입력폼 필드 : JTextField tf_nam..
#10 AWT vs Swing,계산기 만들기 AWT: 내부적으로 C언어로 구성. 운영체제에서 지원하는 컴포넌트를 얻어 옴. java.awt.*; Swing: 순수자바언어로 구성. (운영체제에 상관없이 동일한 컴포넌트 지원) javax.swing.*; 1. Model(모델) - 비즈니스로직과 관련된 부분 처리. - 데이터베이스 관련로직 구현 - JSP Beans, EJB Component - 애플리케이션의 데이터를 표현. 예) class Calculator{ public int plus(int su1, int su2){ return su1+su2; } } ---> 데이터를 가공 처리 int result = plus(2,3); class Person{ String name; int age; String job; } ---> 서로 관련있는 속성을 클래스..
#9 Event 처리 컴포넌트에 기능을 정의하자!!- Event : 사건 (~했을때)예) Button을 눌렀을때Scrollbar조절바를 움직였을때TextField에 글자를 썼을때Frame우측상단의 X버튼을 클릭했을때- 컴포넌트에 사건이 발생했을 때 기능을 부여하는 것.1. 컴포넌트에 적용할 이벤트를 분석. 2. EventListener(인터페이스) 상속.----> implements (구현의 약속)※ 인터페이스 만드는 방법- 분석된 이벤트클래스에서 Event대신 Listener붙임!!예) ActionEvent -----> ActionListenerItemEvent -----> ItemListener MouseEvent -----> MouseListener3. 메소드 구현 (이벤트 핸들러). 이벤트처리부(EventHandler..
#8 중첩클래스, TUI, AWT, 데이터저장 포함,Nested- 클래스내에 또 다른 클래스를 구성하는 것. ※ 주의 : 메소드 내에는 다른 메소드를 정의 할 수 없음!! 종류)정적 중첩클래스 - static이 선언된 내부클래스외부의 자원을 사용할 때 static붙는 인스턴스만 접근가능.비정적 중첩클래스 - static이 선언되지 않은 내부클래스inner클래스!!class A{ //외부클래스, Outer클래스, Top-level클래스//필드//메소드//1차 자원 정의int i=11;void hello(){print(); (X)B b = new B();b.print(); (O)} class B{ //내부클래스, Inner클래스//2차 자원 정의void callTest(){hello(); (O)}void print(){}}//B class}//A cla..
#7 배열사용이유, 배열(Vector), Exception(예외처리), Matches, StringTest ---> 여러개의 데이터를 한 변수명으로 정의 ---> (인덱스)관리가 편해짐---> 제약: 동일한 자료형, 고정된(수) 데이터만 입력!! - 가변길이 배열- 객체에 대한 참조(주소)를 가지는 배열생성자)Vector() : 묵시적으로 10개의 방을 가진 Vector객체생성Vector(int size) : size지정된 크기의 Vector객체생성Vector(int size, int incr) : size크기의 Vector객체생성- 새로운 요소가 추가되어 크기가 늘어나야 할 경우 incr지정만큼 늘어남.관련메소드)boolean hasMoreElements() : 요소가 있으면 true, 없으면 false리턴Object nextElement() : 다음 요소를 반환 import java.util.Enumera..
#6 문자열 내용 비교, 이름(추가,검색,수정,삭제), String Test public class Car {//★★String carName;//nullint wheelNum;//0int velocity;//0public Car(String carName, int wheelNum, int velocity) {this.carName = carName;this.wheelNum = wheelNum;this.velocity = velocity;}/*@Overridepublic String toString() {//to~메소드 :변환메소드, toString(): 문자열변환 메소드//---> 객체의 상태를 표현하는 메소드 (필드의 값이 무엇인지를 표현) String str = "이 차는 "+ this.carName+"이고 바퀴수는 "+ wheelNum+", 속도는 "+ velocity+"..
#5 인터페이스, final, 추상클래스, 배열, 2차원 배열 인터페이스형식)interface 인터페이스명{//필드[고정 public static final] int su=10;// final변수는 값을 초기화해서 유지할 값을 명시!!//선언된 메소드[고정 public abstract] void print();}------> 저장: 인터페이스명.java ---컴파일---> 인터페이스명.class- 클래스에 다중 상속을 구현할 수 있다.- interface의 구성멤버는 필드, 선언된 메소드로만 구성.void print(){} -----> 정의된 메소드, 구현된 메소드!!void print(); ----> 선언된 메소드 (바디없는,영역괄호없는 메소드) - 서로 다른 제품에 연결할 수 있는 공통연결 모듈을 의미.- ★인터페이스는 어떻게 사용? 클래스에 구현해서 사용!!키..