본문 바로가기

자바

(23)
Day13 자바 2주차 첫 번째 강사님의 마지막 문제 . 다음의 결과를 수행하는 프로그램을 완성하시오. int[] arrayOne = {10, 20, 13, 25}; int[] arrayTwo = {2, 5, 0, 3, 1, 7}; arrayOne, arrayTwo 두 개의 배열이 있다. 이 두 개의 배열은 정수를 저장하고 있으며, 서로 크기가 다르다. 두 개의 배열의 크기를 비교하여 더 큰 배열의 수만큼 for 반복문을 작성해 보자. 반복문을 수행하면서 arrayOne에 있는 숫자와 arrayTwo에 있는 숫자를 나눗셈 하도록 한다. 서로 같은 위치(같은 인덱스)에 있는 숫자끼리 나눗셈을 수행하고, 그 결과를 출력한다. 그리고 발생할 수 있는 에러 상황에 대해서 예외처리를 통해 프로그램이 비정상적으로 종료되지 않..
Day12 지네릭 클래스의 객체 생성과 사용 : 참조변수와 생성자에 대입된 타입(매개변수화된 타입)이 일치해야 한다. 일치하지 않으면 에러가 발생 ex) Box appleBox = new Box(); 두 타입이 상속관계에 있어도 마찬가지 ex) Apple extends Fruit 일때 , Box appleBox = new Box(); 단, 두 지네릭 클래스의 타입이 상속관계에 있고, 대입된 타입이 같은 것은 괜찮다. ex) Fruit extends Box 일때, Box appleBox = new FruitBox //ok 생성된 Box의 객체에 void add(T item)으로 객체를 추가할때, 대입된 타입과 다른 타입의 객체는 추가할 수 없다. ex) Box appleBox = new Box(); appleBox...
Day11 package com.test2; import java.util.*; public class MyVector implements List{ Object[] data = null; //객체를 담기 위한 객체배열을 선언한다. int capacity = 0; // 용량 int size = 0; // 크기 public MyVector(int capacity) { if(capacity < 0) throw new IllegalArgumentException("유효허자 않은 값이다. :"+capacity); this.capacity = capacity; data = new Object[capacity]; } public MyVector() { this(10); //크기를 지정하지 않으면 크기를 10으로 한다. } /..
Day10-1 StringBuffer클래스 : 지정된 문자열을 변경할 수 있게 해주는 내부적으로 문자열 편집을 위한 buffer를 가지고 있고, 인스턴스를 생성할때 그 크기를 지정할 수 있다. package com.test01; public class Sample09 { public static void main(String[] args) { StringBuffer sb = new StringBuffer("01"); //sb1 인슨턴스를 생성하고 "01"문자열 값을 넣어줌 StringBuffer sb2 = sb.append(23); //sdb2 인스턴스를 생성하고 매개변수로 입력된 값을 문자열로 //변환하여 StringBuffer인스턴스가 저장하고 있는 문자열의 뒤에 덧붙인다. sb.append('4').append(..
2주차 은행 계좌 예제 수정 선언 클래스에서 메서드를 더 적극 활용해보면서 구동 클래스에서는 호출로 좀 더 가독성을 높이려고 했다. package test1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import test1.*; -----------------------------------------선언 클래스-------------------------------------- public class AccountInfo { private String name; private String account; private int balance; AccountInfo(String name, String accou..
Day09 package com.test.workshop3.doctor; public class Doctor { private String name; private String department; public Doctor() { } public Doctor( String name, String department ) { this.name = name; this.department = department; } @Override public String toString() { return department + " : " + name + " 선생님"; } public void treatPatient() { System.out.println( "환자를 진료합니다." ); } } package com.test.works..
Day08 추상 클래스(abstract class) : 완성되지 못한 채로 남겨진 설계도를 의미하며, 인스턴스는 생성할 수 없다. 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상 클래스로부터 상속받는 자손클래스는 오버라이딩을 통해 조상인 추상클래스의 추상 메서드를 모두 구현해주어야 한다. 만일 조상으로부터 상속받은 추상메서드 중 하나라도 구현하지 않는다면, 자손클래스 역시 추상 클래스로 지정해주어야한다. 상속이 자손 클래스를 만드는데 조상 클래스를 사용하는 것이라면, 이와 반대로 추상화는 기존의 클래스의 공통부분을 뽑아내서 조상 클래스를 만드는 것이라고 할 수 있다. 인터페이스 : 일종의 추상클래스로 오직 추상 메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 혀용하지 않는다. 인터..
Day07 package : 클래스의 묶음으로, 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. import문 : 소스코드를 작성할 때 다른 패키지의 클래스를 사용하려면 패키지명이 포함된 클래스 이름을 사용해야 한다. 하지만 매번 패키지명을 붙여서 작성하는것이 불편하기 때문에 import문으로 사용하고자 하는 클래스의 패키지를 미리 명시해주면 소스코드에 ..