[210428수] API + 주민번호 검증 프로그램
[1교시]
[Package]
- 폴더 (자바에서는 패키지라고 부른다. 꾸러미)
- 클래스를 관리할 때, 많은 데이터가 하나에 들어있으면 관리하기 어려우니 관련있는 클래스들끼리 묶어놓는 개념.
- 폴더와 폴더 사이를 "."으로 구분
- 프로젝트 > 패키지 > 관련있는 클래스 속해있다.
- 도메인을 이용 : www.naver.com라면 com.naver.web.vo 이런 식으로 거꾸로
[패키지 만들기]
package는 어떠한 명령문보다 자바상단에 올라와야 한다.
다른 위치에 있는 패키지를 사용하기 위해 org.scit.vo.Fitness와 같이 사용한다면 너무 길어 불편하다.
그렇다면 내가 사용하겠다는 것을 어떻게 알릴까? import 패키지주소.메소드명 으로 알리기!
import는 여러 개가 올 수 있지만 package의 import는 딱 한번만 올 수 있다.
[java.util.Scanner; 와 같은 것들은 어디서 가져오지?]
JRE System Library
jar 자바를 위한 압축파일 ar(아카이브)
[내가 만든 메소드도 아닌데 import를 사용하지 않는 경우는?]
import java.lang.String;
import java.lang.Math;
너무 중요하고 많이 사용하기 때문에 따로 쓰지 않아도 됨.
- java라는 명으로 package를 만들면 안된다. Java 관계자들만 할 수 있다.
[API]
: 자바 애플리케이션을 개발하는 개발자들은 자바 API를 사용하게 된다. 그런데 자바에서 제공하는 API는 방대하기 때문에 이것을 이용하기 위해서는 API의 목록과 사용법이 체계적으로 정리된 문서를 이용할 수 있어야 한다.
자바에서 제공하는 기본 패키지들은 아래와 같은 기능을 담고 있다.
▶ java.lang : 자바 프로그래밍을 위한 가장 기본적인 패키지와 클래스를 포함하고 있다.
▶ java.util : 프로그램을 제어하기 위한 클래스와 데이터를 효율적으로 저장하기 위한 클래스들을 담고 있다.
▶ java.io : 키보드, 모니터, 프린터, 파일 등을 제어할 수 있는 클래스들의 모임
▶ java.net : 통신을 위한 기능을 담고 있다.
[자바 기능 참고 링크] : 자바 기능에 대해 어떻게 사용하는지 알고 싶다면 들어가보기
docs.oracle.com/javase/8/docs/api/index.html
Java Platform SE 8
docs.oracle.com
java.lang --> String
Deprecated : 앞으로 지원하지 않을 가능성이 높아 사용하지 않는 것이 좋다.
클래스를 만들면서 동시에 패키지를 자동으로 만들 수 있다.
[다양한 String 만드는 법]
byte[] temp; 숫자를 이용해 문자열로 출력하기
String에 한해서만
byte[] temp = {65, 66,67,68};
String d = new String(temp);
=> 이것이 의미하는 것은 byte[] temp를 가지고 문자열을 만드는 것.
<면접일화>
String의 메소드를 말해보세요.
열어보기↓
[자주 사용되는 String Method]
명확하게 사용방법을 모르는 것
자주 사용되어 꼭 기억할 것
chatAt(int index)
→ 문자 하나를 리턴
codePointAt(int index)
→ 지정한 위치(index)의 코드값을 알려주는 함수(int)
concat(String str)
→ 문자열과 문자열을 연결하는 함수( String)
contains(CharSequence s)
→ Returns true if and only if this string contains the specified sequence of char values.
→ 문자열이 문자 값의 특정 순서를 담고 있을 때 값을 리턴(boolean)
startWith(String prefix)
→ 지정한 문자열로 시작하는지 여부를 리턴
→ Tests if this string starts with the specified prefix.
endsWith(String suffix)
→ 지정한 문자열로 끝나는지 여부를 리턴
→ Tests if this string ends with the specified suffix.(boolean)
equals(Object anObject)
→ Compares this string to the specified object.(boolean)
indexOf(int ch)
→ Returns the index within this string of the first occurrence of the specified character.(int)
isEmpty()
→ 빈 문자열인지의 여부를 리턴
→ Returns true if, and only if, length() is 0.(boolean)
lastIndexOf(int ch)
→ Returns the index within this string of the last occurrence of the specified character.(int)
replace(CharSequence target, CharSequence replacement)
→ Returns a string resulting from replacing all occurrences of oldChar in this string with newChar. (String)
split(String regex)
→ Splits this string around matches of the given regular expression. (String[])
substring(int beginIndex)
→ Returns a string that is a substring of this string. (String)
substring(int beginIndex, int endIndex)
→ This object (which is already a string!) is itself returned. (String)
trim()
→ Returns a string whose value is this string, with any leading and trailing whitespace removed.(String)
length()
→ Returns the length of this string.(int)
한번씩 꼭 사용하고 익숙해지기!
[2교시]
[자주 사용되는 String Method]
▶String length
String str의 개수를 int len으로!
String str의 인덱스 또한 배열과 동일하게 0~16번까지 17개의 문자로 이루어져있다. 여기에는 띄어쓰기를 한 곳도 포함이다.
[length] : 문자열의 개수를 리턴
[charAt(int index)] :char -String 문자열 하나를 리턴
[codePointAt] : 지정한 위치(index)에 있는 코드값(int)을 리턴
[isEmpty] : 빈 문자열인지의 여부를 리턴
[startWith] : 지정한 문자열로 시작하는지 여부를 리턴
[endWith] : 지정한 문자열로 끝나는지 여부를 리턴
[substring] : 부분 문자열 뽑아오기(지정한 위치부터 마지막까지)
[substring] : 부분 문자열 뽑아오기(지정한 두번째 위치 -1까지)
[3교시]
String Pool
:Sting Pool영역도 heap영역 중 하나
홍+ 길동
"+"이 있으면 기존의 "홍"을 버리고(너무 많은 작업을 해야하기 때문에)
원본을 수정할 수 없기때문에 원본을 버리고 다시 만든다.
연결하기 위해 사용하는 "+" 컴퓨터의 성능을 떨어뜨린다.
고급 개발자들은 리팩토링해서 "+"를 버린다.
"+"를 대신해 메소드 concat(), relpace() 사용. 대신 사용횟수를 줄여야 함.
[Stirng의 주소와 내용]
String name = "홍길동";와 String name1 = "홍길동";는 새로 생성한 것이 아니고 데이터가 같기 때문에 주소가 같다.
하지만 String name2 = new String("홍길동");와 String name3 = new String("홍길동");는 따로 새로 생성한 것이고 주소가 다르다.
★[equals(Object anObject)]
문자열 내용을 비교할 때 사용하고 자바는 eqauls, 자바스크립트는 "=="를 사용한다.
문자열의 내용!을 비교하는 equals를 통해 name, name1, name2, name3 어떤 것과 비교해도 내용은 같다.
문자열을 비교할 때는 "=="가 아니라 eqauls로!
[어제한 FitnessService에서 delete 부분]
null은 하나의 주소이다.
[오후 수업]
과제 : 주민번호 검증 프로그램
<힌트>
<내가 한거>
★해당 메소드로 이동하고 싶을 때, 메소드에 직접 ctrl을 누르면 직접 이동 가능하다.
♣ 복습
: 2021년 05월 01일 토요일