본문 바로가기
코딩

2022.02.21_11일차_패키지와 API

by 흥뷰자 2022. 2. 25.

11일차 학습내용

1. 패키지package
2. API Application Programming Interface
3. java.lang패키지. import 필요없음
4. java.util


1. 패키지package 


: 폴더/ 디렉토리: 서로 관련있는 클래스나 컴파일된 클래스 
파일들을 한곳에 묶어 놓은 것
JDK는 개발자에게 많은 클레스 파일들을 패키지 형태로 제공한다.
rt.jdr 압축파일로 제공되며, 내부는 폴더구조로 정리되어 있는 것을 볼 수 있다

1) 클래스명
: 클래스를 지칭할 때 패키지명을 포함하는 경로명을 사용한다.
패키지와 패키지 사이는 점 연선저 사용.

2) 패키지의 필요성
:

3) 패키지 사용
기본적으로 클래스 사용시, 패키지명을 포함한 전체 경로명을 기술해야함.
java.util.Scanner sc = new jave.util.Scanner();

4) import문
import 패키지.. 클래스명;
import java.util.Scanner;
import sc = new Scanner(System. in);

한 패키지 안에 있는 여러 클레스를 사용하고 싶은 경우,
import java.util.*; // util패키지에 있는 모든 클래스 임포트

5) package 만들기
폴더만들고 java파일 상단에
package 패키지명; 기술 해주기.






2. API Application Programming Interface

API 
응용프로그램간 데이터를 전송하는 방법, 형식 
특정 데이터를 달라고 요구하는 데 필요한 형식이 있고, 
서버측에서도 데이터를 줄 때 누구에게 허용할지, 얼마만큼을 공개할지 비용과 절차적 제한을 두게 되는데 이러한 형식이 있을거이지


자바에서 제공하는 기본 패키지를 Java API라고 한다. 

1) API 문서
Java SE
Java EE

2) API
java.awt  : GUI (그래픽 유저 인터페이스) 잘 안씀 웹으로 바로 띄어서 하니까 우린 안써 
java.beans : == 컴포넌트(부품) 클래스
java.io : Input/Output(I/O) : 입출력 관련. File *
java.lang : 기본패키지 *
java.math : 기본연산이외에 더 다양한 연산이 필요할때 사용하는패키지
java.net : 네트워크 관련
java.nio : new I/O
java.security : 보안관련
java.sql : 데이터베이스 (*나중에 웹에서)
java.text : 글자관련
java.util : 배열대신 사용할 것. 날짜, 벡터, 해시맵, 데이터저장 등 *

javax.~ : 서포트하는 패키지


그 외
구글 API
네이버 API
카카오 API
공공데이터 포털 



3. java.lang패키지. import 필요없음



1) Object 클래스 : 최상위 클래스
11개 메서드

 Api01 출력해보기
.getClass()
.hashCode()
.toString 오버라이드   

.equals() 
* == 연산자 : 기본형이면 값비교, 참조형은 주소비교 (오버라이딩X)
  boolean equals(Object obj) : 기본적으로 주소비교
사용자에 의해 오버라이딩해서 사용가능
ex) String 클래스의 equals()

2) String 클래스 : 문자열 클래스
스트링 리터널은 자바 컴파일러에 의해 모두 String 객체로 처리

1) 생성자
String()
String(String original): 문자열에 넣으면서 객체 생성
String(char[] value) : char배열의 문자들을 String객체로 생성

2) 스트링리터럴 new string()  
String str = "hello"; 리터럴 방식
String str = new String(); 객체 생성 방식

<Api03

3) 주요메서드 
char charAt(int index)
String concat(String str) : 현재 스트링뒤에 str매개변수를 덧붙여
새로운 문자열로 리턴해줌(문자열 연결)
boolean contains(CharSequence s) : 매개변수로 던진값을 포함하는지
boolean equals(String str)
int compareTo(String str) : 사전순비교, 같으면 0, 현재가 먼저 음수, 
아니면 양수
int length() 
String replace(CharSequence target, CarSequence repl)
: 새로 바뀐 문자열 리턴 (변수에 대입해야 바뀐버전 보존)
String[] split(String regex) : 정규식regex을 구문자로 
문자열을 나눠서 배열에 담아 리턴
String subString(int beginIndex) : beginIndex부터 시작하여
이어지는 문자열을 리턴
String toLowerCase()
String toUpperCase()
String trim()

사용해보기


contains


3) StringBuffer 클래스
: 문자열. String과는 다르게 문자열을 저장하는 가변버퍼를 가지고 있다.
저장된 문자열 수정 가능.

4) Wrapper클래스
: Wrapper라는 클래스는 존재하지 않는다.
int, char, double등 8개 기본형을 객체로 다루기 위해
JDK에 만들어진 8개의 클래스를 통칭하여 Wrapper클래스라 함.

기본타입 : byte short int  long char     float double boolean
  Wrapper  : Byte Short Integer Long Character Float Double Boolean

#1. 객체 생성
클래스명 변수명 = new 클래스명(값); // int or String
#2. 주요메서드(기본형으로 주는)
float floatValue()
int   intValue()
long longValue()
short shortvalue()
static int  parseInt(String s)
static String  toBinary(int i)  : 2진수
static String toHexString(int i) : 16진수
static String  toOctalString(int i) : 8진수
static String  tiString(int i)   : 문자열로

#3. 박싱/ 언박싱
박싱 Integer ten = new Integer(10);
int -----------> Integer
10 <-----------    10
언박싱  int n = ten.inValue();


5) Math 클래스       



4. java.util


1) Calendar 클래스          
추상클래스 (getinstance메서드로 가져다써야)
년, 월, 일, 요일, 시간, 분, 초, 밀리초 등 get(), set() 메서드 이용
1970.1.1.0.0.0를 기준으로

Calendar.YEAR
Calendar.DAY_OF_MONTH
Calendar.MONTH : 달 (0~11)
Calendar.DAY_OF_WEEK : 요일
Calendar.HOUR
Calendar.AM_PM
Calendar.HOUR_OF_DAY : 24시간 기준
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND : 1초 == 1000밀리초

* 객체 생성 (X) new말고 
Calendar now = Calendar.getInstance();


2) Date 클래스   
: 단일 클래스, 객체생성 가능 / 상수가 많고 더 연산이 빠른 캘린더, 상수대문자때문에 많이 안써져





문제

문제풀이 5:34





패키지package
2. API Application Programming Interface
3. java.lang패키지. import 필요없음
4. java.util



댓글