본문 바로가기

전체

(219)
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 =..
0403 - For문 추가, 이중for문, While문, do while문, break, continue, Scanner Class For문 추가 -초기식과 증감식은 ' , ' 기호를 사용하여 나열 작성 가능 -조건식은 &&, ||로 연결 for(int i = 1, j = 5; i 조건식이 생략된 경우 무조건 참으로 처리 int i = 1; //for 구문에 상관없이 계속 존재 for(; i = 1 ; i --) { // 초기식 생략 System.out.print(i+"\t"); } // 출력: 1 2 3 4 5 4 3 2 1 - 조건식이 생략된 경우 무조건 참으로 처리 -> 무한루프 for(;;) { //초기식, 조건식, 증감식 생략 System.out.println("무한 반복되어 실행되는 명령"); } //데드코드 -> 무한루프 다음에 오는 코드. 실행 불가. System.out.println("==================..
0331 - 제어문(IF문, Switch문, For문), 전역변수, Debug Perspctive 제어문(Control Statement) : 선택문과 반복문 같은 것을 이용해, 프로그램의 흐름(스래드 - Thread)을 바꾸어 주는 문장 => 선택문(if, switch), 반복문(for, while), 기타(break, continue, return) -선택문: 명령을 선택해 수행할 수 있게 함 / if문을 더 많이 쓴다 -반복문: 명령을 여러번 수행해야 하는 상황에서 사용 IF : 조건식에 의해 명령을 선택 실행 형식1) if(조건식) { 명령; 명령; ... } - 조건식의 결과가 참(true)인 경우 블럭({}) 내부에 작성된 명령들을 실행 - 블럭 내부에 명령이 하나만 작성된 경우 블럭({}) 기호 생략 가능 ex1) 변수값이 50 이상인 경우에만 화면에 출력되도록 프로그램을 작성 int s..