JAVA day 7

lee·2021년 12월 1일
0

JAVA

목록 보기
7/14

learning

수업내용 링크

저장소 : GitHub Repositories leeconomy1121/java-study

생성자

  • 메소드 오버로딩(Overloading)

    오버라이딩(Overriding) vs 오버로딩(Overloading)
    부모클래스로부터 상속받은 메소드를 자식클래스에서 재정의하는 것을 오버라이딩이라고한다. 상속받은 메소드를 그대로 사용할 수도 있지만, 자식 클래스에서 상황에 맞게 변경해야 하는 경우 오버라이딩 할 필요가 생긴다.

    오버라이딩의 조건
    오버라이딩은 부모클래스의 메소드를 재정의하는 것이므로, 자식 클래스에서는 오버라이딩 하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야한다.
    @Overrride

    오버로딩(Overloading)
    자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다.

    오버로딩의 조건
    메소드의 이름이 같고, 매개변수의 개수나 타입이 다를 때

  • 디폴트 생성자(Default)
    생성자가 없을 때 적용, 생성자가 있으면 더 이상 디폴트 생성자는 적용 안됨

  • this() 생성자

  • super() 생성자

    this란?
    현재클래스의 인스턴스를 의미합니다.
    즉, 현재 클래스의 멤버 변수를 지정할 때 사용합니다.

    this()란?
    현재 클래스에 정의된 생성자를 부를 때 사용합니다.

    super()란?
    자식 클래스에서 상속받은 부모 클랫의 멤버변수를 참조할 때 사용

    super()란?
    자식 클래스가 자신을 생성할 때 부모 클랫의 생성자를 불러 초기화 할 때 사용됩니다.(기본적으로 자식 클래스의 생성자에 추가됩니다.

GUI(graphical user interface) : 그래픽 사용자 인터페이스

  • 스윙(Swing)

HelloWorld 생성

App class

package application;

import javax.swing.SwingUtilities;
import gui.MainFrame;

public class HelloWorld {

	public static void main(String[] args) {
		// 자바 스윙 프로그램
		// JFrame 은 윈도우 창
		
		SwingUtilities.invokeLater(() -> {
			new MainFrame("테스트 스윙 앱");
			
//			JFrame mainFrame = new JFrame(); // 새 윈도우 창 생성
//
//			mainFrame.setSize(600, 400); // 가로 600, 세로 400
//			mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 창을 종료시 프로그램 종료
//
//			mainFrame.setVisible(true); // 창을 보이게함
			
		});

	}

}

윈도우 창을 닫더라도 프로그램이 실행 중이므로 아래 오른쪽 빨간색 버튼을 눌러 프로그램 종료!

스윙 유틸리티

프로그램의 안정성을 위해 권장하는 코드 :
SwingUtilities.invokeLater(() -> {
코드 입력
});

OOP(Object-Oriented Programming) : 객체 지향적인 프로그래밍

  • OOP의 4가지 특징
  1. 추상화(Abstraction)
  2. 캡슐화(Encapsulation)
  3. 상속성, 재사용(Ingeritance)
  4. 다형성(Polymorphism)
  • 추상클래스
  • 인터페이스
  • Timer 예제 프로그램 작성

    App class
package timer_example;

import java.util.Timer;
import java.util.TimerTask;

class Task extends TimerTask {
	@Override
	public void run() {
		System.out.println("헬로우");
	}
}

public class App {

	public static void main(String[] args) {
		
		Timer timer = new Timer();
		timer.scheduleAtFixedRate(new Task(), 0L, 1000L);

	}

}
  • 결과

    프로그램 종료 전까지 1초마다 반복!
profile
Hello, world!

0개의 댓글