부모 클래스
자식 클래스

 

 

 

자식클래스는 부모클래스를 상속받았지만, 

부모클래스의 print를 '재정의'해서 사용하고있다.

 

조건: 부모클래스의 메서도와 이름 및 매개변수, 반환타입은 같아야한다. + 접근제어자는 부모클래스보다 좁은범위로 하지못한다 + 부모클래스의 메서드보다 많은수의 예외를 선언할 수 없다.

 

 

 

 

 

 

  오버로딩 vs 오버라이딩   

 

오버로딩 : 기존에 없는 새로운 메서드를 정의, but 매개변수가 다르면 다른메서드 === > "중복정의"

오버라이딩 : 상속받은 메서드의 내용을 변경 ===> "재정의"

 

 

 

 

 

 

 

'Java' 카테고리의 다른 글

자바 String 클래스  (0) 2020.06.12
자바 표준입출력(I/O)  (0) 2020.06.06

여느 언어가 그렇듯, 문자열 처리가 가장 어렵다.

자바에서는 어떤식으로 문자열처리를 할까.

 

자바는 char형, 즉 문자형이 없다.

String클래스 하나를 이용해 모두 처리한다. 여기서 알아야할것은 String은 결국 주소를 참조하기 마련이다.

단, c는 포인터가있는데 자바는 없다. 게다가 자바는 근데 char배열도 없다. 

한마디로 String배열을 선언시 내용을 변경할 수 없다. (추후 StringBuffer 클래스는 가능하다.)

 

그렇다면 String클래스로 생성된 문자열은 어떻게 수정되고, 뒤에 덧붙여질까.

그냥 새로운 문자열을 만들고 이전 문자열을 버려버린다.

 

변경불가한 string 클래스

 

 

 

또한 String클래스로 빈 공백문자열로 초기화도 가능하다.

String str = "";  --> 가능

 

 

 

<<알아두면 좋을 String 클래스의 메소드>>

 

 

이외에도

 

boolean contains(String str)string이 str을 포함하는지

String replace(char old, char new)String의 특정 문자 바꾸기

String split(String str)지정된 분리자로 나누기

String toString()인스턴스의 문자열을 반환

 

 

'Java' 카테고리의 다른 글

오버라이딩(Overriding)  (0) 2020.06.13
자바 표준입출력(I/O)  (0) 2020.06.06

자바의 표준입출력을 다루기에 앞서 스트림(stream)에 대해 공부해야하나 스트림은 보통 자바백서의 거의 끝자락에 나오는 내용이므로.. 간단히 다루고 뒤에서 공부하는 것으로하자.

 

표준입출력은 결국 키보드로 입력받아 모니터로 출력하는것이다.

자바에선 System클래스를 사용해 표준입출력을 관리하는데, 이는 자바jvm이 운영체제의 기능을 일부 쓸수있다는 것을 의미한다.

 

System.out : 표준출력

System.in : 표준입력

System.error : 표준에러

 

1.InputStream

스트림은 결국 사전용어로 흐름이다. 말그대로 입력이 들어오고 , 출력으로 나가는 것을 말하는데 자바에선 입출력 스트림이 같을수는 없다. 따라서 자바에서 가장 기초가 되는 입력방법은 InputStream 이다.

 

 

결과

?결과가 이상하다.

InputStream 은 바이트단위로 값을 읽기떄문에, 데이터를 저장하는 컴퓨터에는 바이트 단위로 데이터가 저장된다.

다만 100은 여기서 하나하나가 1바이트로 저장되기때문에  맨첫자리인 1이 아스키코드인 49로  출력되고,

a의 아스키코드인 97이 출력되는것을 볼 수 있다.

 

 

여기서 조금더 확자시키면, InputStreamReader라는것을 통해 문자입력까지 가능하다.

InputStreamReader

 

배열로써 입력되는 문자

 

 

 

조금 더 확장해보자 

BufferedReader를 통해 문자열까지 입력받을 수 있다.

결국 문자열 입력까지 inputstream을 통해 받을 수 있었다. 정리하자면

 

InputStream, InputStreamReader, BufferedReader

 

 

 

 

2.Scanner

 

앞으로 자바 입출력에는 inputsream이나 bufferedreader가 아닌 간단한 Scanner 클래스를 통해 입력을 받을

예정이다. 이는 2004년 JSE 5.0부터 추가되었다고하니 역사가 그리 깊진않다.

 

Scanner class

 

앞선 bufferdreader등과 비교해 훨씬 간단하게 표준입력을 수행한다.

scanner 클래스 method

 

next() : 문자열입력 (공백, 엔터전까지 입력)

nextLine()  : 문자열입력(엔터전까지 입력)

next.charAt(0) : 문자입력

nextInt() : 정수입력

nextDouble() : 실수입력 

 

 

 

 

 

 

3.결론

 

자바의 I/O

자바의 I/O에 관해 이번에는 여기까지만 다루고 뒤에서 스트림과 함께 입출력을 공부해보자.

아래는bufferedreader와 Scanner클래스의 차이에 관한 표인데 버퍼의 사이즈부터 문자열관련처리까지 사용법이 다르다. 속도는 bufferedreader가 훨씬 우세함을 보인다.

 

'Java' 카테고리의 다른 글

오버라이딩(Overriding)  (0) 2020.06.13
자바 String 클래스  (0) 2020.06.12