입출력 INPUT / OUTPUT
·
Programing/JAVA
프로그램에서 다른 대상으로 데이터를 보내거나 읽어 들이는 기능 java.io 패키지에서 제공 http://twinbraid.blogspot.com/2014/09/blog-post_40.html 스트림(Stream) 애플리케이션이 다른 대상으로 데이터 입/출력시 중간 매개체 역할을 하는 단위 애플리케이션 => (출력스트림) => 작업대상(파일,콘솔,서버등) 애플리케이션 Reader(문자) BufferedReader 클래스 Reader 스트림에 버퍼 기능을 추가하는 스트림 클래스 버퍼를 사용해 성능이 좋음 readLine() 메서드 : 라인별로 읽어 들여 String 타입으로 반환 InputStreamReader : 바이트 입력 스트림 -> 문자 입력 스트림 변환 sample.txt Reader 테스트 1 ..
람다 LAMBDA
·
Programing/JAVA
자바 8부터 지원하는 함수 구현과 호출 만으로 프로그래밍 하는 함수형 프로그래밍 방식 지원 이름이 없는 익명 함수 함수적 인터페이스로 구현 Kotlin, Scala 같은 언어도 객체지향 + 함수형 언어 람다식 형식 타입 생략 가능 매개변수가 한개라면 괄호도 생략 가능 매개변수가 없는 경우는 괄호 생략 불가 실행문이 한개라면 중괄호도 생략 가능 (타입 매개변수...) -> { 실행문 .. } () -> {} package chapter15; public class LambdaFunctionEx { public static void main(String[] args) { // 람다식 InterfaceEx ie = (int x, int y) -> x+y; System.out.println(ie.sum(1, 2..
제네릭 GENERIC
·
Programing/JAVA
컴파일시 강한 타입 체크 타입 형변환 코드 불필요 제네릭 타입 Object 필드 모든 값 저장 가능 class NoGeneric { Object[] v; void set(Object[] n) { v = n; } Object[] get() { return v; } void print() { for(Object o : v) { System.out.print(o + " "); } System.out.println(); } } 잘못된 형변시 오류 package chapter14; public class GenericEx { public static void main(String[] args) { NoGeneric nogen = new NoGeneric(); String[] ss = {"홍길동","이순신","김유..
컬렉션 F/W COLLECTION
·
Programing/JAVA
데이터 그룹을 다루고 표현하기 위한 단일화된 아키텍처 여러 데이터들을 표준화된 방식으로 처리하는 기능 제공 효율적으로 데이터(객체) 저장, 처리를 위해 추가, 삭제, 검색을 위한 다양한 클래스와 인터페이스의 모임 인터페이스를 통해 객체 처리방식을 정형화 한것 Collection 인터페이스와 Map 인터페이스로 구분 Collection 인터페이스 List 인터페이스와 Set 인터페이스로 구분 List 인터페이스 데이터 저장 순서 유지(배열과 비슷) 중복저장 가능 주요 구현 클래스 : ArrayList(읽기 많은 경우), Vector(과거버전), LinkedList(추가,삭제 많은 경우) 추가 add(Object), 가져오기 get(index) package chapter13; import java.util..
JAVA- API
·
Programing/JAVA
자바 JDK 설치시 제공하는 API java.lang 패키지 import 없이 사용, 컴파일시 자동 추가됨 Object class 모든 클래스의 최상위 클래스 상속 받지 않은 클래스는 모두 Object 클래스를 상속 받음 기본적으로 11개의 메서드를 가지고 있음 equals() 메서드 주소 체크 값 체크를 위해서는 재정의 해서 사용 package chapter12; public class EqualsEx { public static void main(String[] args) { Obj obj1 = new Obj(100); Obj obj2 = new Obj(100); if (obj1 == obj2) { System.out.println("obj1 객체와 obj2 객체는 같음"); } else { Syst..
예외처리 EXCEPTION
·
Programing/JAVA
오류 : 에러 Error와 예외 Exception 에러 : 프로그램 코드에서 해결 할 수 없는 심각한 오류( JVM 오류, 메모리 부족등) 예외 : 프로그램 코드에 의해 처리할 수 있는 오류 예외 클래스 Exception 이미지참조:https://ccm3.net/archives/20672 예외 처리 try~catch(Exception) / by zero 오류 발생 class ExceptionEx02 { public static void main(String args[]) { int number = 100; int result = 0; for(int i=0; i < 10; i++) { result = number / (int)(Math.random() * 10); // 7번째 라인 System.out.pr..
인터페이스 INTERFACE
·
Programing/JAVA
프로그램과 프로그램을 중간에서 연결해 줌 UI (User Interface) : 사용자와 프로그램과 연결(저장 버튼 클릭 -> 저장 실행) API (Application Programming Interface) : 작업 프로그램과 제공 프로그램 연결 규약 Web API : 웹을 통해 연결(지도, 주소 찾기, 위경도 찾기 등...) 자바에서 인터페이스 추상클래스가 미완의 클래스라면 인터페이스는 기본클래스 인터페이스는 클래스 설계용으로 많이 사용 상속은 수직 구조 설계, 인터페이스는 수평 구조 설계 클래스 설계를 인터페이스로 하면 설계된 메서드의 구현을 강제 할 수있음 오직 추상메서드와 상수만을 멤버로 가짐 class 키워드 대신 interface 사용 인터페이스에 있는 추상메서드를 다 구현하지 않으면 추상..
상속 INHERITANCE_Part3
·
Programing/JAVA
Object 객체 모든 클래스의 부모 클래스 모든 클래스 참조 가능 instanceof 참조변수가 참조하는 인스턴스 실체 타입 확인 true 라는 것은 형변환이 가능 package chapter08.poly; public class ObjectEx { public static void main(String[] args) { allObject(new GraphicCard()); allObject(new Amd()); allObject(new Nvidia()); allObject("안녕"); } public static void allObject(Object obj) { System.out.println(obj.toString()); if(obj instanceof GraphicCard) { GraphicC..
상속 INHERITANCE_Part2
·
Programing/JAVA
final final 변수 : 변수값 변경불가 - 상수 final 메서드 : 오버라이딩 불가 final 클래스 : 상속 불가 final 메서드 : 오버라이딩 불가 class MethodSuper{ final void superMethod(){ System.out.println("super method"); } } class MethodChild extends MethodSuper{ void superMethod(){ System.out.println("child method"); } } public class FinalMethod{ public static void main(String[] args) { // TODO Auto-generated method stub } } final 클래스 : 상속 불가..
상속 INHERITANCE_Part1
·
Programing/JAVA
클래스의 수직 구조 설계 extends 예약어 사용 부모 클래스를 자식 클래스가 상속받으면 부모 클래스의 변수와 메서드가 상속됨 부모 클래스의 변수와 메서드를 자신의 것처럼 사용 가능 부모클래스는 슈퍼(super), 상위, 베이스 클래스 라고도 부름 자식클래스는 서브, 하위, 파생 클래스 라고도 부름 부모클래스 package chapter08; public class Phone { String name; String color; String company; void call() { System.out.println("전화를 건다"); } void receive() { System.out.println("전화를 받다"); } } 자식클래스 package chapter08; public class Smart..