본문 바로가기

JAVA

(133)
예외 관련 예외 1. 검사예외(Exception)주로 프로그램 작성시 에 예상할 수 있는 비정상 상태를 통지하기 위해서 사용한다.파일에서 데이터 입출력하는 처리에서 파일을 읽고 쓸수 없는 경우 IOException 예외발생검사예외를 사용하면 예상되는 비정상 상태에 대응하는 처리가 있는지 컴파일 시 체크한다.포착(catch)해서 처리하거나 상위 호출원에 대해 예외를 발생시키는(throw)것이 필수이며 하지 않을 경우 컴파일 오류가 발생한다. 2.실행시예외(RuntimeException)주로 프로그램 작성시에 예상할수 없는 오류를 통지하기 위해서 사용한다.포착하지 않아도 컴파일 오류가 발생하지 않는다.포작하지 않을 경우 무조건 호출원에서 발생하게 된다.Integer클래스의 parsInt 메서드를 호출할때 정수로 변환할..
객체지향 객체지향은 데이터 및 데이터와 관련된 프로시저를 객체라고 불리는 단위로 묶는다.객체는 프로시저를 실행하는데 필요한 만큼의 데이터를 가지며, 객체들이 모여 프로그램을 구성한다. 각 객체는 자신만의 데이터와 프로시저를 갖는다. 객체는 자신만의 기능을 제공하며, 각 객체들은 서로 연결되어 다른 객체가 제공하는 기능을 사용할 수 있게 된다.객체는 다른 객체에 기능을 제공하기위해 프로시저를 사용하는데, 이 때 프로시저는 자신이 속한 객체의 데이터에만 접근할 수 있으며, 다른 객체에 속한 데이터는 접근할 수 없다.모든 프로시저가 데이터를 공유하는 절차 지향과 달리 객체 지향은 객체 별로 데이터와 프로시저를 알맞게 정의해야 하고, 프로그램의 규모가 작을 때에는 절차지향방식보다 복잡한 구조를 갖게된다. 하지만, 객체지..
절차지향 절차지향소프트웨어를 구현하다는 것은 최종적으로 소프트웨어를 구성하는 데이터와 데이터를 조작하는 코드를 작성하는 것이다.데이터를 조작하는 코드를 별도로 분리해서 함수나 프로시저와 같은 형태로 만들고, 각 프로시저들이 데이터를 조작하는 방식으로 코드를 작성할 수 있다.프로시저는 다른 프로시저를 사용할 수도 있고, 각각의 프로시저가 같은데이터를 사용할수도 있다.프로시저(procedure)로 프로그램을 구성하는 기법을 절차지향(Procedural Oriented)프로그래밍이라고 부른다. 각 프로시저는 데이터를 사용해서 기능을 구현하며, 필요에 따라 다른 프로시저를 사용하기도한다.또한 여러 프로시저가 동일한 데이터를 공유한다. 예) 시험성적관리 프로그램 평균계산 프로시저는 각 과목의 점수가 보관된 데이터를 읽어서..
자바 컬렉션관련 배열의 한계복수의 데이터를 취급하기 위해 배열을 사용했다.그러나 배열은 길이가 결정되어 있기 때문에 요소의 추가나 삭제가 어려운 문제가 있다.그래서 자바에서는 복수의 데이터를 좀 더 다루기 쉬운 구조로 '컬렉션'을 준비했다.컬렉션과 반복자, 그리고 컬렉션을 다루기 위한 유틸리티 등의 집합을 컬렉션 프레임워크라 부른다. 컬렉션은 배열과 달리 처음부터 크기의 제한을 결정할 필요가 없기 원하는 만큼의 데이터를 저장할 수 있다. 또한 컬렉션 프레임워크는 많은 인터페이스와 구현이 준비되어 있어, 각각 다른 알고리즘으로 데이터를 관리한다.배열처럼 여러 데이터를 처리할 수 있는 List 인터페이스와 키와 값을 나누어 데이터를 유지하는 Map 인터페이스 등이 있다. 대표적인 컬렉션배열 - 복수의 요소를 취급하는 매커니..
자바 배열관련 배열동일 타입의 값을 여러개 취급할 수 있는 기능 int[] array = new int[10];array[0] = 1;array[1] = 1;array[2] = 2;array[3] = 3; 배열 초기화int[] array1 = new int[10]; //크기지정int[] array2 = {1,2,3,4,5}; //초기값 지정int[] array3 = new int[] {6,7,8,9,10}; //초기값과 타입을 지정 int[] array4; array4 = new int[]{1,2,3,4,5}; //값을 지정하여 대입array4 = {1,2,3,4,5}; //이것은 컴파일 에러 배열을 인수로 하는 경우 log("사용자를 등록하였습니다.", new String[] {"userName", "Ken"});l..
자바 타입관련 instanceof 연산자변수의 타입과 완전히 일치하는 클래스만이 아니라 그 타입을 상속한 서브 클래스도 변수에 대입할 수 있다.Object로 정의한 경우 그 변수에 String이든 Integer이든 대입할수 있다.변수에 대입된 객체의 타입이 실제로 무엇인지를 판정하는 방법으로 instancof 연사자를 사용 package com.eeswk.domain; public interface BaseService {public String say();} package com.eeswk.domain; public abstract class AbstractBaseService implements BaseService {protected String name;public AbstractBaseService(Strin..
자바 기본형 참조형 클래스 관련 기본형숫자값을 취급하는 리터렐에서는 언더스코어를 사용하여 구분표기를 할수 있다.(자바7이후)@Testpublic void longConvertTest() {long amount = 123_456_789L;System.out.println(amount);} 확장변환(widening conversion) / 축소변환(narrowing conversion)자바는 타입이 서로 일치하지 않는 경우에도 타입끼리 서로 호환성이 있으면 자동적으로 변환short타입은 16비트의 정수 int 32bit 정수short shortNum = 100;int intNum = shortNum; //확장(short -> int) int 타입의 값을 short 타입의 값으로 취급경우 short타입으로 나타낼수 있는 값의 범위를 넘을 경..
자바 기초 작성법 생성자 인스턴스를 생성하는 시점에 설정을 읽어들이거나 필드를 초기화하는 등 여러가지 처리를 하는 경우 '생성자'를 선언한다.생성자는 인스턴스를 생성할 때 호출되는 처리다. package com.eeswk.domain; public class Student {String name;int score;static final int MAX_SCORE = 100;public Student(String name, int score) {this.name = name;this.score = score;}public Student(String name) {this(name, 0);}void printScore() {System.out.println(this.name + "의 점수는 " + this.score +"점 ("..