목록JAVA (59)
노승현
[ 추상 클래스 & 인터페이스 ] 추상클래스는 어떻게 등장하였는가? 기존에 이미 많은 자식 클래스들이 있었는데, 이들의 부모 클래스가 없어, 부모 클래스를 정의하기 위해 탄생 객체를 정의하는데에는 관심이 없다. 객체생성이 불가능하다. ex)[추상] 포켓몬- [추상]전기,물 - 피카츄,꼬부기 ex)[추상] 챔피언-티모,아리,아무무, ... ex)[추상] 모양-원,네모,세모,별, ... ex)[추상] 동물- 강아지,고양이, ... ex) 사람 - 학생,직원 (상위 클래스중에 추상이 아닌 것도 있다.) 클래스를 정의하는데에 관심이 있다. 추상클래스를 사용하는 이유 1) 객체화를 막기 위함 2) 추상 메서드를 사용하기 위함 메서드 오버라이딩 강제 3) 추상 클래스의 목적: 추상 클래스는 공통된 메서드나 필드들을..
package class07; import java.util.Random; /* 매개변수를 class 에 받고 String userName int channel 은 class SamsungTV 클래스 안에 임플리먼츠 파일에 channelUp() , channelDown() channelRandom() printInfo(), channelRandom(), 미니 티비에 battery 변수 넣고 channelRandom() 까지 다 만듬 삼성 티비는 사용자를 홍길동으로 받고 채널업에선 처음 채널은 1로 고정 삼성미니티비2 는 처음채널은 1로 고정 배터리는 50~70으로 설정 LgTV는 처음 채널 1로 고정 처음 전원은 off 상태 */ class SamsungTV implements TvImpl { Rando..
package pokemon; import java.util.Random; import java.util.Scanner; class Pokemonster { String name; int lv; int exp; // 경험치 100당 레벨++ Pokemonster(String name) { this(name, 5); } Pokemonster(String name, int lv) { this.name = name; this.lv = lv; this.exp = 0; } void printInfo() { System.out.println(this.name + " Lv." + this.lv + " [" + this.exp + "/100]"); } void game() { Random rand = new Rando..
package class04; class Pokemon{ String type; int lv; int exp; String name; Pokemon(String type){// 객체를 만들 마음 x / type 멤버변수 값을 강제하기 위함 this.type=type; this.lv = 5; this.exp=0; this.name="포켓몬"; } void attack() { System.out.println("로그 남기기"); System.out.println("포켓몬 클래스의 attack()"); System.out.println("아직 구현되지 않았습니다."); } void hello() { System.out.println("로그 남기기"); System.out.println("포켓몬 클래스의 hel..
상속이란? 자바에서 상속이란 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소이다. 클래스A 상위 클래스 부모 클래스 클래스 B 하위 클래스 자식 클래스 일단 코딩해보고 부족하거나 틀린 부분이 있으면 그 때 고치자 x 정확하고 올바른 설계가 완성된 후에 코딩을 시작한다... 상속관계 extends 키워드 -> 반드시 "설계" 필수 모든 자식 클래스의 생성자 가장 첫 출에는 부모 클래스의 기본 생성자가 자동 호출된다. 부모 클래스의 기본 생성자가 자동 호출된다. 하는 이유 자식 클래스에게는 부모 클래스가 가지고 있는 멤버변수를 초기화 할 수 있는 능력이 없다 그래서 반드시 부모 클래스의 기본생성자를 가장 먼저 호출해야만 한다. 부모 클래스에게 기본 생성자가 없다면? ->에러가 남 1) ..
메서드 vs 함수 메서드 함수에게 주어가 있는경우 funcA(); , main(); static 객체와 무관 student.hello(); data.printInfo(); rand.nextInt(); sc.nextInt(); System.out.println(); static 없음 . 객체(인스턴스) 소속 ☆가장 인자가 많은 항목부터 생성한다 this . ?
package class01; public class Test01 { public static void main(String[] args) { int[] arr = new int[5]; arr[0] = 5; arr[1] = 3; arr[2] = 1; arr[3] = 4; arr[4] = 2; for (int a = 0; a arr[i]) { minIndex = i; } } int temp = arr[a]; arr[a] = arr[minIndex]; arr[minIndex] = temp; } fo..
모듈화(컴포넌트화, 캡슐화, 리팩토링,패키징,함수화,메서드화, ...) 모듈이란? 단독 수행할 수 있는 코드 묶음 독자적인 기능이 존재하는 코드 기존 프로그램은, 전체 코드 중에 단 한 줄이라도 문제가 생기면 동작이 불가능했다. == 결합도가 높은 코드 == 응집도가 낮은 코드 오늘만들 모듈화를 사용한 프로그램은, 각 기능들을 각각의 함수로 묶어서 별도로 관리할 예정 함수 1개가 수정중이더라도 전체 프로그램은 사용가능 == 결합도가 낮은 코드 == 응집도가 넢은 코드 원래 존재하던 기능을 "함수화" 시키는 것 == ★모듈화라고 한다. 함수를 사용하는 학생부 프로그램 만들기 프로그램을 만들기 위해 해야할 것 설계 : LP , ERD , UF LP -> 사용자가 어떤 기능을 사용하는지 == CRUD , ..