분류 전체보기
오버로딩과 오버라이딩
오버로딩 - 같은 클래스나 상속관계에서 동일한 이름의 메소드를 중복 작성한다. - 이름이 같은 여러개의 메소드를 중복 선언하여 사용 편리성이 향상된다. - 메서드 이름은 반드시 동일해야 하며, 메서드의 매개변수의 개수, 타입이 달라야 성립된다. - 정적 바인딩이다. 컴파일 시에 중복된 메서드 중 호출되는 메서드 결정한다. class Number { static void show(int n){ System.out.println(n); } void show(double n) { //line 15. 객체로부터 접근하기 때문에 static 불필요 //함수명이 같을 때 // -> 매개변수 타입||개수가 다르면 상관없음 // => 오버로딩 System.out.println(n); } } public class In..
상속 - inheritance
상속을 이용하는 이유 -클래스 사이에 변수를 중복 선언하지 않아도 된다 (클래스의 간결화) -계층적으로 분류 할 수 있다 (클래스 관리의 용이) -클래스 재사용과 확장 자식 생성자를 만들 때 부모생성자 호출을 첫번째에 적어야 한다. 생성자가 하나 있으면 기본 생성자가 만들어 지지 않는다. 매개변수를 가진 생성자의 경우 부모 클래스의 기본생성자가 가장 먼저 호출된다. protected : - 같은 패키지 클래스에 접근 가능 - 다른 패키지 클래스에 접근 불가능 → 같은 패키지의 서브 클래스에 접근 가능 → 다른 패키지의 서브 클래스에 접근 가능 : 상속개념.. super : 예약어로 매개변수가 있는 생성자 호출하기 - 디폴트 생성자가 아닌 매개변수가 있는 생성자를 직접 구현해야 한다. → 어떤 생성자를 호..
this
this() 는 반드시 생성자의 첫번째 문장에 위치해야한다. this() 는 반드시 같은 클래스의 다른 생성자를 호출할 때 사용된다. this() 는 생성자에서만 사용된다. - 기본생성자가 먼저 실행된다. - 생성자는 void가 있을 수 없다. class Book{ String name; int price; Book(String name, int price){ this.name=name; this.price=price; } Book(String name){ this(name, 0);//-> 다른생성자 호출 } Book(){ this("제목미정", 0);//매게변수가 2개이므로 7라인이 호출됨 System.out.println("생성자 호출!"); // show() 실행 이전에 기본생성자(sysout) 먼..
static 변수
static 변수는 변수가 선언된 클래스의 모든 인스턴스가 공유하는 변수이다. 인스턴스 생성전에 static 변수가 먼저 생성된다. class A { static int num = 0;//메모리 공간에 공유된다. A(){ in(); } public void in(){ num++; } } public class StaticEx1 { public static void main(String[] args){ A a = new A(); a.num++;//인스턴스로 static 호출 A.num++;//클래스로 static 호출 System.out.println(A.num); } }
보조 스트림
보조스트림은 실제 데이터를 주고받는 스트림이 아니기 때문에 데이터를 입출력할 수 있는 기능은 없지만, 스트림의 기능을 향상시키거나 새로운 기능을 추가할 수 있다. //먼저 기반스트림을 생성한다. FileInputStream fis = new FileInputStream("test.text"); //기반스트림을 이용해서 보조스트림을 생성한다. BufferedInputStream bis = new BufferedInputStream(fis); //보조스트림인 BufferedInputStream으로부터 데이터를 읽는다. bis.read(); ▼ 보조스트림의 종류 입력 출력 설명 FilterInputStream FilterOutputStream 필터를 이용한 입출력 처리 BufferedInputStream Bu..
바이트기반 스트림
입력스트림 출력스트림 입출력 대상의 종류 FileInputStream FileOutputStream 파일 ByteArrayInputStream ByteArrayOutputStream 메모리(byte 배열) PipedInputStream PipedOutputStream 프로세스(프로세스간의 통신) AudioInputStream AudioOutputStream 오디오장치 InputStream : 바이트 단위로 읽는 스트림 중 최상위 스트림 : This abstract class is the superclass of all classes representing an input stream of bytes. → OutputStream, Reader, Writer와 더불어 추상 클래스이다. 하위클래스가 구현해야 ..
콘솔에 입력한 값을 문서로 생성하기 InputStreamReader
입출력스트림 : 응용프로그램과 입출력장치를 연결하는 소프트웨어 모듈 입력 -> 입력스트림 -> 자바응용프로그램 -> 출력스트림 -> 출력 문자스트림/바이트스트림 입력받는 상황 1. Scanner 2. InputStreamReader(많이 쓰임) InputStreamReader : 바이트 스트림에서 문자 스트림으로의 다리. : For top efficiency, consider wrapping an InputStreamReader within a BufferedReader. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); import java.io.BufferedReader; import java.io.BufferedWri..
스트림. 파일 생성과 읽어오기
바이트 스트림 (바이트 단위) 1) 입력 스트림 -> ~~~InputStream 2) 출력 스트림 -> ~~~OutputStream 문자 스트림 (문자 단위) 1) 입력 스트림 -> ~~~Reader 2) 출력 스트림 -> ~~~Writer * 주인공(기반스트림) vs 장식(보조스트림) * -> Constructors의 매개변수를 보고 확인가능하다. 매개변수 안에 InputStream, OutpuStream, Reader, Writer가 보이면 장식(보조스트림), (-> 스스로 파일 생성 안됨) ex)BufferedOutputStream(OutputStream out) 없으면 주인공!(-> 스스로 파일 생성 가능)(기반스트림) ex)FileOutputStream(File file) 1. 파일 생성(출력)..
자바 입출력과 스트림
자바는 입출력 장치와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 일종의 가상 통로인 스트림을 제공한다. 스트림이란 데이터를 운반하는데 사용되는 연결통로이다. 입력스트림 : 어떤 대상으로부터 자료를 읽어 들일 때 사용하는 스트림 출력스트림 : 편집 화면에 사용자가 쓴 글을 파일에 저장할 때 사용 -> 스트림은 단방향이여서 입력과 출력을 동시에 할 수 없다. 입력스트림 FileInputStreamⓑ㉮, FileReaderⓢ㉮, BufferedInputStreamⓑ, BufferedReaderⓢ 등 출력스트림 FileOutputStreamⓑ㉮, FileWriterⓢ㉮, BufferedOutputStreamⓑ, BufferedWriterⓢ 등 바이트 단위ⓑ로 파일을 읽거나 쓰게되면 한글 같은 문자가 깨지..
백준 10818 - 1차원 배열
* N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. * 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. * 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. * 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. * 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. import java.util.Scanner; public class Main10818 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. 배열의 크기 n 을 입력받는다. int n = sc.nextInt(); /..