본문 바로가기

학원

(182)
0413 - 정적 내부 클래스,익명의 내부 클래스, 패키지, import 키워드, 어노테이션, 접근 제한자,예외처리 • 정적 내부 클래스(Static InnerClass) -static 제한자를 사용하여 클래스를 선언한다. -일반클래스에선 static 제한자 사용해 클래스 선언이 불가능하고, 내부 클래스에서만 가능하다. -정적 내부클래스에서는 static 제한자를 사용하여 필드 또는 메소드 선언이 가능하다. package nested; public class OuterTwo { private int outerNum; public OuterTwo() { // TODO Auto-generated constructor stub } public OuterTwo(int outerNum) { super(); this.outerNum = outerNum; } public int getOuterNum() { return outerN..
0412 - 인터페이스, 기본메소드, Enum 자료형, 중첩 클래스 인터페이스 • 인터페이스(Interface) : 현실에 존재하는 대상을 클래스보다 더 추상적으로 표현하기 위한 자료형 (참조형) • 인터페이스 내부에는 상수필드(Constant Field)와 추상메소드(Abstract Method)만 선언이 가능하다 => 버전 업데이트 후, 정적메소드(Static Method)와 기본메소드(Default Method)도 선언 가능해졌다 (JDK11 이후 사용되기 시작) 형식)[public] interface 인터페이스명 { [public static final] 자료형 필드명 = 값; // public static final 생략가능 [public abstract] 반환형 메소드명(자료형 매개변수, ...); // public abstract 생략가능 } -> 인터페이스..
0411 - instanceof, 오버라이드에 의한 다향성, Object클래스, 추상 클래스, 추상 메소드, final 키워드, 상수필드 부모로 참조변수를 만들고 객체형변환 해야하는 이유는 부모 뿐만 아니라 모든 자식들을 다 참조할 수 있기 때문이다. 단 1대 1인 상속관계인 경우에는, 자식클래스 참조변수 = new 자식클래스(); 의 방법이 더 효율적이다. 상속 이용해 학원인적자원(강사,학생,직원) 관리 프로그램 작성하기 프로그램 작성에 필요한 클래스) AcademyApp 클래스 - 학원인적자원(강사,학생,직원) 관리 프로그램 AcademyStudent 클래스 - 학생정보(학생번호,학생이름,수강과목)를 저장하기 위한 클래스 AcademyInstructor 클래스 - 강사정보(강사번호,강사이름,강의과목)를 저장하기 위한 클래스 AcademyStaff 클래스 - 직원정보(직원번호,직원이름,근무부서)를 저장하기 위한 클래스 중복된 코드를 최소..
0410 - 클래스 다이어그램, 상속관계, 포함관계, Super 키워드, 메소드 오버라이딩, 객체형변환 클래스 다이어그램클래스와 클래스의 관계 - 객체 관계 → UML(Unified Modeling Language)를 사용하여 클래스 다이어그램(Class Diagram)으로 표현할 수 있다. ** UML : 통합 모델링 언어 >> 모델을 만들고 설명하는 표준 언어(약속) 1. 일반화 관계(Generalization) : 상속 관계 - X is a Y (X는 Y이다) → 클래스를 선언할 때 기존 클래스를 상속받아 작성 → 사원 클래스와 관리자 클래스의 관계 - 관리자는 사원이다.(0), 사원은 관리자다.(X) 2. 실체화 관계(Realization) : 상속 관계 → 클래스를 선언할 때 기존 인터페이스를 상속받아 작성 → 인터페이스 : 현실에 존재하는 대상을 클래스 보다 추상적으로 표현하기 위한 자료형 자바..
0407 - This, Static, Runtime Class, 싱글톤 클래스(Singleton Class) This • this 키워드 : 메소드에 숨겨져 있는 키워드 this 키워드는 메소드 내부에 숨겨져 있는 키워드로 메소드를 호출한 객체의 메모리 주소(HashCode)를 자동으로 전달받아 저장하는 키워드이다. 메소드 내부의 명령에서 객체의 필드 또는 메소드를 사용하기 위해 this 키워드를 사용한다. this 키워드를 사용해 메소드 내부에서 객체를 대신 표현한다. 평상시에는 this 키워드를 사용하지 않아도 자동으로 객체의 필드 또는 메소드에 접근하여 사용된다. public void display() { //this를 쓰지 않아도 JVM에서 알아서 this를 처리해준다. //System.out.println("아이디 = " + this.id); System.out.println("아이디 = " + id)..
0406 - 클래스, 접근 제한자(private, public),캡슐화,메소드 오버로딩, 다향성, VO클래스, 필드/생성자/메소드 선언 클래스(Class) : 객체(Object)를 생성하기 위한 자료형 (참조형) ▶ Java에서는 객체(Object) 대신 인스턴스(Instance)라는 용어 사용 ▶ 현실에 존재하는 사물 또는 관념을 클래스라는 자료형으로 표현하여 프로그램에 사용할 수 있도록 객체로 생성 클래스는 설계도로 존재하고, 실체가 없는 것이다. 실체화 시키기 위한 것이 객체이다. 형식) [public] class 클래스명 { //[] -> 생략가능 필드(Field) //>> 없어도 되지만, 필요한 경우 써줘야 한다. ... 생성자(Constructor) ... 메소드(Method) ... } -필드: 표현 대상의 속성을 저장하기 위한 변수 - 멤버변수 -생성자: 클래스로 객체를 생성하기 위한 특별한 형태의 메소드 (new 연산자로..
0405 - 객체 중심 프로그래밍(OOP), 메소드 선언 및 호출, return 키워드 배열에 저장된 모든 요소값을 오름차순 정렬하여 출력하는 프로그램 작성 절차지향적 방법으로 작성하는 방법)public class ArraySortApp { public static void main(String[] args) { int[] array = {30, 50, 10, 40, 20}; System.out.print("정렬 전 >> "); for(int num : array) { System.out.print(num + " "); } System.out.println(); //배열 요소값을 선택 정렬 알고리즘을 사용하여 오름차순 정렬되도록 저장 for(int i = 0; i < array.length - 1 ; i++) { for(int j = i+1; j < array.length ; j++) { ..
0404 - 난수 출력, 가위바위보 게임, Java 자료형, Java 메모리 영역, 배열, 향상된 for문, 로또 프로그램, 2차원 배열 컴퓨터로부터 난수값을 제공받아 출력하는 프로그램 -난수값 : 컴퓨터로부터 불규칙적으로 제공되는 숫자값 -Math 클래스 : 수학 관련 기능을 제공하는 클래스 -Math.random() : 0.0보다 크거나 같고 1.0보다 작은 실수 난수값을 반환하는 메소드 => 0.0 > 0 0 1~3 범위의 정수값을 난수로 제공받아 저장 int computer = (int)(Math.random()*3)+1; //사용자에게 가위바위보 중 하나를 키보드로 입력받아 저장 // => 입력값이 1~3 범위의 정수값이 아닌 경우 에러 메세지 출력 후 재입력 int user; while(true) { //입력값 검증을 위한 반복문 System.out.print("가위바위보[1: 가위, 2:바위, 3:보] >> "); user =..