본문 바로가기

Programming language

(37)
Java - 12 [캐스팅] DRY(Don't Repeat Yourself) 코드가 DRY 하다라는 말을 들어본적 있는가? DRY(Don't Repeat Yourself) 중복배제 라는 뜻으로 같은 의미의 코드가 무의미하게 반복되지 않는 코드라는 뜻이다. 예를 들면 for문으로 할것을 같은 코드를 반복해서 수행한다면 DRY하지 않다. 이를 for문으로 해결하면 코드가 DRY하다라고 하는 것이다. 코딩은 항상 DRY 해야한다. 캐스팅 - 캐스팅은 이러한 DRY한 코드를 위해 사용된다. public class BankAccount { boolean deposit(int amount) { // 입금액이 0보다 작거나 계좌주의 현금보다 입금액이 클 경우는 입금 실패 // 입금이 실패할 경우는 입금되지 않는다. if (amount < 0 |..
Java - 실무6 [블랙잭] Card.java - 카드 클래스이다. public class Card { // 상수들, 바뀔 필요가 없기에 final로 정의하였고 getter, setter 함수가 없어도 된다. (상수기 떄문에) public final int suitNumber; public final int rankNumber; // 생성자 인수 : 카드 종류, 카드 랭크 public Card(int suitNumber, int rankNumber) { this.suitNumber = suitNumber; this.rankNumber = rankNumber; } // suitNumber의 getter // 현재카드의 suitNumber를 문자열출력의 모양으로 바꾼다. public String getSuit() { String sui..
Java - 11 [Random , Collections] Random class - 여러형태의 난수를 생성할 때 필요하다. public class RandomExample { public static void main(String[] args) { System.out.println("0.0 ~ 1.0 사이의 난수 1개 발생 : " + Math.random()); System.out.println("0 ~ 10 사이의 난수 1개 발생 : " + (int)((Math.random()*10000)%10)); System.out.println("0 ~ 100 사이의 난수 1개 발생 : " + (int)(Math.random()*100)); } } 위 코드를 보면 기본적으로 Math.random() 함수는 0.0에서 1.0사이의 난수를 발생 시킨다. setSeed(lo..
Java - 10 [protected 접근제어자, Object 클래스] protected 키워드 - private로 정의된 변수들은 해당클래스 내에서만 부를수 있다. - 즉, 상속된 자식클래스들도 접근을 못한다는 소리다. 하지만 protected키워드는 이러한 접근을 가능하게 한다. 오직 자신과 자식키워드에게만 허용된 변수를 설정할 수있다. public class BankAccount { private int balance; ... } public class MinimumBalanceAccount extends BankAccount { ... @Override public boolean withdraw(int amount) { if (getBalance() - amount < minimum) { System.out.println("적어도 " + minimum + "원은 남겨..
Java - 9 [상속, super] 상속 - 상속이란 기존의 클래스를 모두 받고 이어서 확장시켜 새로운 클래스를 정의하는 개념이다. - 자동차라는 클래스가 있다면 트럭이라는 클래스는 자동차라는 클래스를 상속받아 확장한 클래스이다. 이때 상속받은 클래스는 자식클래스 모태가 되는 클래스는 부모클래스 라고 한다. public class BankAccount { private int balance; public int getBalance() { return balance; } public void setBalance(int balance) { this.balance = balance; } // 출금 public boolean withdraw(int amount) { if (balance >= amount) { balance -= amount; r..
Java - 실무5 [MP3플레이어] Artist.java - 아티스트는 여러 앨범을 갖고 있다, - Album ArrayList가 있어야한다. import java.util.ArrayList; //Artist는 여러 앨범을 가지고 있고 앨범들은 여러 곡들을 가지고 있다. public class Artist { private String artistName; // 여러 앨범들을 가지는 ArrayList ArrayList albums = new ArrayList(); // 생성자 인수 : artistName public Artist(String artistName){ this.artistName = artistName; } // 앨범 추가 메소드 public void addAlbum(Album album){ albums.add(album); ..
Java - 실무4 [학점계산기] public class Main { public static void main(String[] args) { GradeCalculator gradeCalc = new GradeCalculator("김신의", 4.0, 100); gradeCalc.addCourse(new Course("OOP", Course.CREDIT_MAJOR, "A+")); gradeCalc.addCourse(new Course("신호와시스템", Course.CREDIT_MAJOR, "A")); gradeCalc.addCourse(new Course("해석학", Course.CREDIT_MAJOR, "B+")); gradeCalc.addCourse(new Course("확률", Course.CREDIT_MAJOR, "A+")); gr..
Java - 실무3 [영화관] Theater.java - 행과 열을 인수로 받아 이중 Seat 배열을 가진다. - 좌석을 예약하거나 취소한다 - 예약된 좌석을 보여준다. public class Theater { private Seat[][] seats; private int rowCount, colCount; // Theater 생성자 : 행, 열 인수. public Theater(int rowCount, int colCount) { // 행은 알파벳의 26자리를 넘어가지 못한다. if (rowCount > 26) { rowCount = 26; // number of alphabets } // 영화관의 시트 이중 배열을 생성한다. seats = new Seat[rowCount][colCount]; // 해당 시트자리마다 시트객체를 생..