no image
[Java] 14. 스윙
스윙 GUI 프로그램 만들기 스윙 프레임 작성 main() 메소드 작성 프레임에 스윙 컴포넌트 붙이기 스윙 패키지 사용에 필요한 import 문 import java.awt .*; // 그래픽 처리를 위한 클래스들의 경로명 import java.awt.event .*; // AWT 이벤트 사용을 위한 경로명 import javax.swing .*; // 스윙 컴포넌트 클래스들의 경로명 import javax.swing.event .*; // 스윙 이벤트를 위한 경로명 Ex1. 300 X 300 크기의 스윙 프레임 만들기 import javax.swing.*; public class MyFrame extends JFrame { public MyFrame() { setTitle("300x300 스윙 프레임 ..
2021.06.05
no image
[Java] 13. GUI
GUI(Graphical User Interface) 강력한 GUI 컴포넌트 제공 쉬운 GUI 프로그래밍 AWT 패키지와 Swing 패키지에 제공되는 메커니즘 이용 AWT - java.awt 패키지 Swing - javax.swing 패키지 💡 Swing에는 다양한 컴포넌트 기능들이 있어서 강하고 경량적인 프로그래밍에 유리하다! AWT(Abstract Windowing Toolkit) 자바가 처음 나왔을 떄 함께 배포된 라이브러리 java.awt 패키지 AWT 컴포넌트는 중량 컴포넌트(Heavy Weight Components)이다. AWT 컴포넌트는 native(peer) 운영체제의 GUI 컴포넌트의 도움을 받아 작동한다. - 플랫폼 의존적 운영체제에 많은 부담을 주지만 처리 속도는 빠르다. 교차 할 ..
2021.06.01
no image
[Java] 12. 모듈화와 패키지 응용
모듈 java9에서 도입된 개념 패키지와 이미지등의 리소스를 담은 컨테이너 모듈 파일(.jmod) └ 개발자가 쓰고 싶은 영역만 모듈로 묶음(모듈화) 메모리 제약 감소 필요한 요소만 사용 가능 자바 플랫폼 자바의 개발 환경(JDK)와 자바의 실행 환경(JRE)를 지칭한다. 자바 API 의 모든 클래스가 여러 개의 모듈로 재구성된다. 자바 실행 환경 비교 자바 모듈화의 목적 자바 컴포넌트들을 필요에 따라 조립하여 사용하기 위함 컴퓨터 시스템의 불필요한 부담 감소 기본 주요 패키지 java.lang - 자바 language 패키지 java.util - 자바 유틸리티 패키지 java.io - 키보드, 모니터, 프린터, 디스크 등에 입출력을 할 수 있는 클래스와 인터페이스 제공 java.awt - 자바 GUI ..
2021.06.01
no image
[Java] 11. 모듈과 패키지
모듈 여러 패키지와 이미지 등의 자원을 모아 놓은 컨테이너 JDK 9부터 자바 API의 모든 클래스들(자바 실행 환경)을 패키지 기반에서 모듈들로 완전히 재구성함 응용프로그램 역시 여러 개의 모듈로 분할하여 작성 가능 클래스의 패키지화 → 패키지의 모듈화 자바 API를 여러 모듈로 분할하여 응용프로그램의 실행에 적합한 모듈들로만 실행 환경 구축 메모리 등의 자원이 열악한 작은 소형 기기에 꼭 필요한 모듈로만 구성하여 실행하기 위함 💡 모듈화는 복잡한 개념이므로 메모리 환경이 충분한 경우에는 굳이 모듈화를 하지 않아도 됨 모듈 파일에는 자바 API 의 패키지와 클래스들이 들어 있음 jmod 명령을 이용하여 모듈 파일에 들어 있는 패키지를 풀어 낼 수 있음 java.util.Scanner : 경로명으로 구성..
2021.05.26
no image
[Java] 10. 인터페이스
인터페이스(interface) : 호환성을 나타내는 정해진 규격 클래스가 구현해야 할 메소드들이 선언되는 추상형 interface 키워드로 선언 인터페이스의 목적 스펙을 주어 클래스들이 그 기능을 서로 다르게 구현할 수 있도록 하는 클래스의 규격 선언 클래스의 다형성을 실현하는 도구 인터페이스 구성 요소 상수public 만 허용 추상 메소드public abstract 생략 가능 default 메소드 public 만 허용 인터페이스에 코드가 작성된 메소드 인터페이스를 구현하는 클래스에 자동 상속 private 메소드 인터페이스에 코드가 작성된 메소드 인터페이스 내에 있는 다른 메소드에 의해서만 호출 가능 static 메소드 public, privat 모두 지정 가능, 생략 시 public 인터페이스의 특성..
2021.05.26
no image
[Java] 9. 추상 메소드와 추상 클래스
추상 메소드(abstract method) abstract 키워드를 사용해서 선언 선언되어 있으나 구현되어 있지 않은 메소드 형태만 있는 메소드! 서브 클래스에서 오버라이딩하여 구현해야함 추상 클래스(abstract class) abstract class Shape { public Shape() { } public void paint() { draw(); } abstract public void draw(); } abstract class MyComponent { String name; public void load(String name) { this.name = name; } } 추상 메소드를 하나라도 가진 클래스 추상 메소드가 하나도 없지만 abstract 로 선언된 클래스 🌟 추상 클래스는 객체를 ..
2021.05.16
no image
[Java] 8. 메소드 오버라이딩
메소드 오버라이딩(Method Overriding) 슈퍼 클래스의 메소드를 서브 클래스에서 재정의 슈퍼 클래스 메소드 명, 매개변수 타입 및 개수, 리턴 타입, 접근 지정자 등 모든 것을 동일하게 작성 (= 메소드 무시하기, 덮어쓰기) 서브 클래스에 오버라이딩된 메소드가 무조건 실행되는 것동적 바인딩 발생 └ 내/외부에서 메소드2()의 호출이 발생해도 무조건 서브 클래스의 메소드2()가 호출된다. └ draw() 메소드의 오버라이딩 사례 오버라이딩 조건 부모 클래스의 메소드와 메소드 명, 매개변수 타입 및 개수, 리턴 타입, 접근 지정자 등의 시그니처가 모두 동일해야 함 접근 제한을 더 좁게 수정 불가 _public_이나 _default_나 _private_로 수정 불가 추가적인 예외 (Exception..
2021.05.16
no image
[Java] 7. 상속
상속 (inheritance) : 부모 클래스에 만들어진 필드, 메소드를 자식 클래스가 물려받음 상속을 통해 간결한 자식 클래스 작성 └ 동일한 특성 재정의 필요 ❌ → 자식 클래스의 간결 상속의 장점 클래스의 간결화: 멤버의 중복 작성 불필요 클래스의 관리 용이: 클래스들의 계층적 분류 소프트웨어의 생산성 향상: 재사용과 확장 용이 상속의 특징 클래스의 다중 상속 지원 ❌ (클래스를 여러 개 상속 불가) 상속 횟수는 무제한이다. 상속의 최상위 조상 클래스는 java.lang.Object 클래스이다. └ 컴파일러에 의해 자동으로 상속이 이루어진다. 상속 선언 public class Person { ... } public class Student extends Person { // Person 을 상속받는..
2021.05.08
no image
[Java] 6. 메소드 작성과 접근 지정자
메소드 오버로딩(Overloading) (같은 클래스 내에)이름이 같은 메소드 작성가능 매개변수의 개수나 타입이 서로 다르고 이름이 동일한 메소드들 💡 리턴 타입은 오버로딩과 관련이 없음 public int getSum(int i, int j){ return i + j; } public int getSum(int i, int j, int k) { return i + j + k; } 메소드 호출 객체 소멸 : new 키워드 사용 ( 생성 ) → 할당된 객체 메모리를 다시 JVM의 가용 메모리로 돌려주는 것 C/C++과 다르게 할당받은 객체를 프로그래머가 임의로 소멸 불가 └ 객체 소멸은 JVM 고유의 역할 가비지(gabage) 가리키는 레퍼런스가 하나도 없는 객체 사용 불가한 메모리 가비지 컬렉션 JVM의..
2021.05.02