국비 11일차_1

강지수·2023년 12월 27일
0

국비교육

목록 보기
20/97

지난 시간 복습

추상메소드/추상클래스
추상메소드 : 몸체가 (중괄호,{}) 없는 메소드, 메소드 내에 할 내용, 기능 을 기록하지 않고 이름만 정해져 있음. abstract 키워드를 써야 함.
추상 클래스 : 추상 메소드가 1개 이상 존재하는 클래스. abstract 키워드를 써야 함.

추상 클래스를 상속받은 자식 클래스는 추상메소드를 override 해야 함.

이미 정의가 되어있는 메소드를 재정의할 때도 override 한다.

toString

wrap
parseInt : 문자열을 int 형으로 변환

DI : 의존성 주입, 제어의 역전


인터페이스 (interface)

인터페이스 안에는 일반 method 는 들어갈 수 없다.
무조건 추상 method 만 들어갈 수 있음.
abstract 생략 가능

인터페이스는 다중 상속 가능

package com.tech.gt008.interphone;

public class PhoneTest {
	public static void main(String[] args) {
		PhoneCall call=new PhoneCall();
		call.sendVisualMsg();
		call.getVisualMsg();
		call.sendVoiceMsg();
		call.getVisualMsg();
	}

}

PhoneTest.java (main)


package com.tech.gt008.interphone;

public class PhoneCall implements VisualCall,VoiceCall{
//	인터페이스는 다중 상속 가능

	@Override
	public void sendVoiceMsg() {
		System.out.println("음성 메시지 전달");
		
	}

	@Override
	public void getVoiceMsg() {
		System.out.println("음성 메시지 수신");
		
	}

	@Override
	public void sendVisualMsg() {
		System.out.println("영상 메시지 전달");
		
	}

	@Override
	public void getVisualMsg() {
		System.out.println("영상 메시지 수신");
		
	}

}

PhoneCall.java


package com.tech.gt008.interphone;

public interface VisualCall {
	public void sendVisualMsg();
	public void getVisualMsg();

}

VisualCall.java


package com.tech.gt008.interphone;

public interface VoiceCall {
	public void sendVoiceMsg();
	public void getVoiceMsg();

}

VoiceCall.java


결과

영상 메시지 전달
영상 메시지 수신
음성 메시지 전달
영상 메시지 수신

인터페이스에서 인터페이스로 상속할때는 extends를 사용한다.
클래스에서 클래스로 상속할때도 extends를 사용한다.
=> 같은 종류끼리는 extends


클래스에서 클래스와 인터페이스를 둘 다 상속받을 수 있다.
extends 먼저, implements 나중에


implements를 먼저, extends를 나중에 상속받게 되면 오류가 발생한다.


여기까지가 자바에 대한 1차 기본기 끝
나머지는 frame 배우고 나서 더 배워야 함

이라는데 뭘 배웠지..?

간단한 내용만 배운거 같은데....?

이후엔 swing 을 배운다고 함.

swing은 그래픽을 다루기 때문에 이것보다 더 재밌을 것이라 함.


java.awt - frame
javax.swing - jframe

스윙 배우고 개인 프로젝트 진행할 예정


출력결과가 저런 창으로 나오게 하는 게 swing, jframe 이다.


JFrame을 상속하면 객체생성 없이도 바로 출력 가능


freeimages.com/icon

flaticon.com/kr

무료 아이콘이미지 사이트


프레임 상단 이미지 변경


버튼 생성


버튼 여러 개 생성


공간이 부족하면 아래줄로 내려가고, 공간이 남으면 그대로 옆에 생성된다
=> FlowLayout 의 기능


BorderLayout의 구성

North, West, East, South, Center 의 5개로 이루어져 있음.


각 part 에 button을 추가한 모습


Flowlayout 에서 '왼쪽 정렬', button 간격 '좌우 30, 상하 60' 을 준 모습


GridLayout 을 이용해서 label 과 textfield 를 추가한 모습


GridLayout (행, 열, 수평간격, 수직간격)


setLayout의 기본값은 FlowLayout,
null 로 값을 주면 NoneLayout
=> 위치를 지정해줘야함

NoneLayout 지정으로 인해 label의 위치를 지정해서 출력


반복문을 사용해서 만들 수 있음.
JButton() 안에는 문자열만 들어갈 수 있어서 i 를 String 으로 변환시켜줌.


CardLayout
컨테이너에 카드레이아웃 형태로, 라벨을 설정한 판넬을 붙인 후 라벨을 호출해서 출력한다.

판넬이 차곡차곡 쌓여있다고 생각하면 됨. 호출하면 그 판넬이 제일 위로 올라오는 느낌

=> 이벤트 처리로 활용 가능

이벤트처리 (차후 배울 내용)

버튼에 action을 달아서 누를 때마다 출력 (마우스 클릭 이벤트)


온도변환기 만들기 - 예시


profile
개발자 준비의 준비준비중..

0개의 댓글