봉봉의 개인 블로그
2017-05-26-P 본문
상속(Inheritance)
상속 = 슈퍼클래스가 가진걸 서브클래스가 가진다.
예를들어
Calculation.java 라는 java 파일이 있다고 하자.
그리고 나서
My_Calculation.java 라는 java 파일을 만든다.
이때 2번줄과 같이 extends 를 이용해 확장시켜 주게되면
Calculation.java 파일안의 내용을 재활용해서 사용할수 있게 되는것이다.
또한 생성자 메서드를 통해 My_Calculation.java 객체를 만들때 생성자 안에는 슈퍼클래스 생성자를 가지고 있어야 한다 즉,
public My_Calculation(){
super.Calculation
}이런색으로 되어 있어야한다는것이다.
wrapper classes 들은 기본타입인데 참조타입처럼 사용하고 싶을때 사용한다.
기본타입을 여러개를 배열의 형태로 받고싶을때 사용해도 된다.
ArrayList 로는 기본타입의 값을 배열의 형태로 받아서 넘길수 없기 때문에
기본타입을 wrapper 를 통해서 상속받고 DTO 처럼 사용해 주소값을 ArrayList에 할당해서 배열의 형태로 받을수 있다.
*참조 <- 기본 으로 되는것을 : 빡싱이라고하고
기본 <- 참조 으로 되는것을 : 언빡싱이라고 한다.
*기본타입과 관련된 api를 확인해보는것도 중요하다 예를 들면 equals,floor 등을 확인하자
Math class(모든게 static이 붙는다)
math 생성자는 rivate화되어있다.
floor , random 등 wrapper와 마찬가지로 api 등 찾아보자.
String class 는 활용도가 높으므로 꼭 찾아보자
Files and input/output
input/output 의 개념은 게시글등 많은 프로그램에 적용된다.
input,output을 쉽게 설명하자면
input은 메모리에 들어가는것이고
output은 메모리에서 나오는것이다.
input의 예로는 게시글을 쓸때에도 사람이 입력한 데이터가 input 되어 그사람 메모리로 들어가게 되고 그 메모리에 있는것이 output 되서 나와서 랜선을 타고 input을 통해서 메모리로 들어와 output을 통해서 파일화해서 저장되는 방식에도 적용이 된다.
이클립스 java 를 통해 확인해본다면 files 을 예로 들어보겠다.
이런식으로 java 파일을 만들어 줍니다.
여기서 7번줄은 파일을 안으로 가지고 올때 사용하고 8번줄은 파일을 밖으로 내보내는것이다.
while 문을 통해서 int 타입으로 선언된 c 안에 in.read를 통해서 -1이 아니면 계속 c담게끔 만들어줍니다
그리고 char로 형변환해서 c 의 값을 계속 출력하게 되면 input에서 파일의 내용을 가지고와 담은 내용이 콘솔창에 출력되게 된다 그후 out.write를 통해서 다시 c의 값을 output을 통해서 out안에 c의 내용을 담아 파일의 형태로 다시 밖으로 내보낼수도있는것이다 즉 12번과16,17번을 통해서 txt 파일로 된 파일의 내용을 메모리로 가지고 오고 콘솔차에 출력하고 13번과 16,18번문을 통해서 txt파일로 메모리의 데이터를 txt파일로 파일화도 할수 있습니다.
이걸통해서 미리 txt 파일 안에 미리 입력되어있던 데이터(id=jjdev)를 가지고 와서 콘솔창에 입력한 값과 비교하여 콘솔창에 로그인성공과 로그인실패를 출력해보도록하겠다.
먼저
이런식으로
7번문에서 Scanner 타입으로 객체참조변수 s 를 선언하고 Scanner(System.in)의 생성자 를 통해 객체의 주소값을 s 안에 할당해줍니다 여기서 Scanner 는 콘솔창에 입력할수 있게끔 만들어주는데 그 뒤에 System.in 은 대표적인 in 기구인 키보드로 입력을 하겠다는 소리이다
그후 9번에서 String 타입으로 inputid를 선언하고 그안에 s 주소값안에 있는 nextLine 즉
쉽게 설명하자면 키보드로 입력하고 nextLine 엔터키를 누를때까지 란소리인것이다
그후 10번에서 파일의 데이터를 받을 곳을 만들어놓고
try 문안에 12번문을 통해 txt 파일 안에 미리 입력되어있던 데이터(id=jjdev)를 가지고 와서 in안에 담아둡니다. 그후 while문을 통해 마찬가지로 i 안에 in에 read를 통해 -1 값이 나올때까지 데이터를 읽은다음
while문안에 str += (char)i 를 통해서 String 타입의 str안에 in안에 값을 읽어들이면서 형변환하고 i의 자리의 데이터들을 str안에 순차적으로 넣어줍니다.
그후 18번 라인에서 str 안에 lastIndexOf 를통해서 =의 자리수를 구해줍니다
그후 String 타입으로 systemid를 선언하고 그안에 str안에 substring(문자열을 잘라줍니다) 을통해 txt 파일 안에 미리 입력되어있던 데이터(id=jjdev) 즉 id= 까지 잘라서 jjdev만 systemid변수안에 담아줍니다 그후 if 문을 통해서 입력한 inputid 값과 파일안에 담겨있던 데이터를 잘라내서 만든 systemId 의 값이 일치하면 로그인성공이라는 문이 콘솔창에 뜨게 뒤고 그렇지 않으면 else 문이 뜨게 됩니다.
그리고 finally 를 통해 in객체를 닫아 줘야 합니다.*infile 같은경우는 직접 close 해주지 않게 되면 메모리내에 계속 살아있게되므로 꼭 닫아 주어야합니다.
아래사진은 콘솔창에 입력할때의 사진이다.
이런식으로 키보드를 통해서 입력해주고 엔터키를 눌러주면된다.
'학원에서 배운것들 > TEA - P' 카테고리의 다른 글
2017-06-01-P (0) | 2017.06.01 |
---|---|
2017-05-31-P (0) | 2017.05.31 |
2017-05-25-P (0) | 2017.05.25 |
2017-05-24-P (0) | 2017.05.24 |
2017-05-22-P (0) | 2017.05.22 |