프로그래밍 685

04.14(자바 IO)

입출력을 위한 인터페이스와 클래스들 자바 IO는 크게 byte단위 입출력과 문자 단위 입출력클래스로 나뉨 - byte단위 입출력클래스는 모두 InputStream과 OutputStream이라는 추상클래스를 상속받아 만들어짐 - 문자(char)단위 입출력클래스는 모두 Reader와 Writer라는 추상클래스를 상속받아 만들어집니다. 4가지 추상클래스(InputStream,OutputStreamReader,Reader,Writer)를 받아들이는 생성자가 있다면, 다양한 입출력방법을 제공하는 클래스임 4가지 클래스를 받아들이는 생성자가 없다면, 어디로부터 입력받을 것인지, 어디에 쓸것인지를 나타내는 클래스 파일로 부터 입력받고 쓰기 위한 클래스 : FileInputStream, FileOutputStream,..

04.13(객체)

클래스 객체를 정의해 놓은 것. 객체의 설계도, 틀. 사물이나 개념의 공통 요소(속성, 기능)를 용도에 맞게 추상화(abstraction) 함. 추상화(abstraction) 프로그램에서 필요한 기능/속성을 추출하고, 불필요한 것을 제거하는 과정 클래스 작성 추상화(abstraction) → 클래스 작성 추상화한 결과물을 객체 지향 프로그래밍 언어를 사용해서 변수명(데이터이름)과 자료형(데이터타입)을 작성. 클래스 선언 [접근제한자] [예약어] class 클래스명{ [접근제한자] 자료형 변수명; //속성 [접근제한자] 자료형 변수명; //속성 [접근제한자] 생성자명(){} [접근제한자][예약어]리턴형 메소드명(){ //기능정의 } //기능 } 예제> public class Person{ private S..

04.12(제어문-조건문, 반복문, 분기문 / 배열의 복사)

조건문 1. if문 if(조건식) { } 조건식의 결과값이 true이면 {}의 내용을 실행 2. if ~ else문 if(조건식) { }else { } 조건식의 결과값이 true면 if문 뒤의 {}내용을 실행 false면 else의 {}안의 내용을 실행 3. if ~ else if문 if(조건식1){ }else if(조건식2) { }else { } 4. switch문 switch(변수or계산식) { case 리터럴1(정수or문자or문자열) : 변수or계산식의 결과가 앞의 리터럴에 해당될경우 실행될 구문; break; case 리터럴2 : ......; break; default : ......; break; } 변수or계산식과 리터럴이 일치할 경우의 case문을 실행 break를 만나면 switch를 빠..

04.10(error 알아보기)

컴파일 에러 .java => .class로 옮길때 발생하는 오류(대부분의 컴파일러 오류는 코드 입력 시의 실수, 다시 말해 문법적인 오류) jdk가 제공한 문법을 따르지 않아서 발생한 오류 런타임 에러 프로그램 실행 중에 발생하는 오류 프로그램 작성 시 설계 미숙으로 인한 경우가 많음 논리 에러 사용자가 의도한 작업을 프로그램에서 수행하지 못하는 오류 코드의 흐름이 잘못 짜여진 경우(내 생각대로 작동안함) Exception 예외처리를 통해 정상적인 흐름으로 만들 수 있는 것들 Exception은 checkedException과 un-checkException으로 나뉨 runtimeException는 uncheckException 나머지는 checkedException 강제화 하지 않았을 뿐이지 프로그램이..

04.09(calendar 출력해보기)

calendar 출력 public static void main(String[] args) { private final char[] DAY_OF_WEEK = {'일', '월', '화', '수', '목', '금', '토'}; //Calendar cal = new Calendar(); //abstract클래스 이기에 new로 만들수 없음 Calendar cal1 = Calendar.getInstance(); //출력결과는 더보기에서 확인 Calendar cal2 = new GregorianCalendar(); //출력결과는 더보기에서 확인 System.out.println(cal1); //1970.1.1 00:00:00.000 기준으로 쌓여온 밀리초를 계산 그 이전이라면 음수(unix second, epoc..

04.08(상속과 다형성)

클래스 무엇인가를 정의하기 위한 큰 틀 구현해내고 싶은게 있다면 클래스 안에 속성과 기능을 만들어 놓고, 메인메소드에 객체를 생성하여 사용함 멤버변수(인스턴스 변수) 객체 생성시 실행되고 소멸시 GC의 소관 생성자 객체 초기화를 위하여 사용 클래스 생성시 생성되고 new 표현식을 통한 객체의 생성과 함께 실행됨 객체 생성시에만 호출됨 메서드 기능정의부분 래퍼런스(reference) 형 변환 래퍼런스 타입간의 형 변환을 의미 클래스 간 상속관계에 있거나 인터페이스를 구현하는 부모-자식 관계에 있는 경우에만 형 변환이 가능함 업캐스팅(up casting) 서브 크래스에서 슈퍼 클래스로 형변환하는 것을 의미 부모의 객체로 자식 객체의 멤버를 사용할 수 있음 단, 부모가 갖고 있는 멤버에 한해서만 참조 가능 자..

04.07(&&, ||, ++, --연산자와 반복문의 특징, 오버로딩과 오버라이딩)

&&연산자와 ||연산자 && 연산자 : 앞의 논리식이 거짓이면 뒤 논리식을 실행하지 않음 || 연산자 : 앞의 논리식이 참이면 뒤 논리식을 실행하지 않음 ++연산자와 --연산자 ++ 연산자 : 단독 사용시에는 변수 앞/뒤 구분없으나, 다른 식이나 문장의 일부로 사용시 앞에 사용되면 선증가 후처리, 변수 뒤에 사용되면 선처리 후증가의 의미를 가진다. -- 연산자 : 단독 사용시에는 변수 앞/뒤 구분없으나, 다른 식이나 문장의 일부로 사용시 앞에 사용되면 선감소 후처리, 변수 뒤에 사용되면 선처리 후감소의 의미를 가진다. 반복(loop)문 3가지의 기능적 차이점 for 문 반복 횟수가 정해진 반복일 때 주로 사용 반복 여부를 결정짓는 조건식이 처음에 제시되므로, 한번도 실행이 안될수도 있음 while 문 반..

04.06(객체 지향언어의 특징과 변수에 따른 소멸시기)

객체지향언어(OOP)의 특징 1. 캡슐화 : 추상화를 통해 공통된 기능을 하나로 묶어 관리하는 것. ① 추상화의 단위가 됨 ② 재사용 단위가 됨 ③ 정보은닉을 실현 2. 상속 : 다른 클래스가 가진기능을 정의하지 않고 가져와 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능(확장가능) 3. 다형성 : 상속을 이용한 기술로, 자식 객체를 부모크래스 타입의 변수로 다룰 수 있는 기능 (4. 추상화) 변수에 따른 소멸 시기 클래스 변수 :프로그램 시작시~종료시 멤버변수(인스턴스 변수) : 객체 생성시~소멸시(GC소관) 지역변수 : 메서드 생성시~종료시

04.03(접근제한자, 메소드, 추상클래스, super, 오버라이딩, 클래스 형변환)

접근제한자의 종류 public : 어떤 클래스든 접근할 수 있다는 것을 의미 protected : 자기 자신, 같은 패키지, 서로 다른 패키지다 하더라도 상속받은 자식 클래스에서는 접근할수 있다는 것을 의미 default(접근제한자를 적지 않으면 default접근 지정자) : 자기자신과 같은 패키지에서만 접근할 수 있다는 것을 의미 private : 자기 자신만 접근할 수 있다는 것을 의미 메소드란? 사물은 상태와 행동으로 나뉨 여기서 상태는 필드(이름, 번호, 컬러)이고 행동(움직임)은 메서드임 메소드의 입력값은 매개변수, 결과값은 리턴값 매개변수(Parameter) : 전달된 인자를 받아들이는 변수 ≒인자(Argument) : 어떤 함수를 호출시에 전달되는 값을 의미 추상클래스 추상 클래스란 구체적이..