Backend/JAVA

JAVA 코딩 API (Application Programming Interface) - Integer, Exception

쏠솔랄라 2023. 2. 23. 10:42

 

 


JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, 함수, 메소드
https://developernew.tistory.com/21

 

JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, 함수, 메소드

객체 지향 프로그래밍(OOP: Object Oriented Programming) 객체 중심의 프로그래밍 방식 객체끼리의 상호 작용을 통하여 프로그램을 작성하는 방식 부품화 캡슐화 == 클래스 속성과 기능을 하나의 캡슐처

developernew.tistory.com


JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, static
https://developernew.tistory.com/22

 

JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, static

자바 클래스 기본개념 및 기본예제 https://developernew.tistory.com/21 JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, 함수, 메소드 객체 지향 프로그래밍(OOP: Object Oriented Programming) 객체 중심의 프로그래

developernew.tistory.com


JAVA 코딩 객체지향프로그래밍 OOP, Class 중첩클래스
https://developernew.tistory.com/24

 

JAVA 코딩 객체지향프로그래밍 OOP, Class 중첩클래스 - 일반중첩클래스, static중첩클래스, 지역중첩

JAVA 객체지향 프로그래밍 OOP, Class 기본개념 및 예제 https://developernew.tistory.com/21 JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, 함수, 메소드 객체 지향 프로그래밍(OOP: Object Oriented Programming) 객체

developernew.tistory.com


JAVA 코딩 객체지향프로그래밍 OOP, 배열 클래스 Array Class
https://developernew.tistory.com/25

 

JAVA 코딩 객체지향프로그래밍 OOP, 배열 클래스 Array Class

JAVA 객체지향 프로그래밍 OOP, Class 기본개념 및 예제 https://developernew.tistory.com/21 JAVA 코딩 객체지향프로그래밍 OOP, 클래스 Class, 함수, 메소드 객체 지향 프로그래밍(OOP: Object Oriented Programming) 객체

developernew.tistory.com

 

 


 

 

API(Application Programming Interface)

 

: 프로그램을 만들 때 필요한 클래스 또는 인터페이스들의 모음


JAVA에서 기본적으로 제공하는 API : 자바의 기본적인 기능
외부에서 제공하는 API : 각각 수행하는 기능들이 존재한다
자바에서 기본적으로 제공하는 API는 문서화 시켜놓았다
(* 사전처럼 검색해서 찾아보고 적용하면 됨 ; 크롬에서 JAVA SE 8 API)

API 사이트 : java.oracle.com

https://docs.oracle.com/javase/8/docs/api

 

Java Platform SE 8

 

docs.oracle.com

 

 

 

 

좌측 상단 : 패키지 검색 영역

좌측 하단 : 패키지 상세 영역
     interface : 다중 상속 전용 클래스
     class : 추상 클래스, 일반 클래스
     enum : C언어 잔재 ; 
          월화수목금토일 - 1234567 -> public static final String mon = 1
           상수화 변수로 대체
           exception : 외부적인 요인으로 인해 발생되는 에러를 표현한 클래스 -> 실행 중 발생
           -> 예외는 우리가 직접 처리가 가능하다 (try ~ catch)
           error : 문법상의 오류 등올 표현한 클래스 -> 실행되지 않음
     annotation
      : 주석형
       @뒤에 알맞은 단어를 적어서 표현한 클래스
            바로 아래에 있는 영역을 강제적으로 의미를 부여하는 클래스
             ex.
                 @Override : 알림, 강제적 의미 부여, 

중앙 영역 : 클래스 상세 영역


java.lang

 

 

int a = 5;

@Override

public int hashCode() {

return a;

}

 

@Override

public boolean equals(Object obj) {

return this.hashCode() == obj.hashCode();

}

 

@Override

public String toString() {

return "a = " + a;

}

 

public static void main (String[] args) {

 

/*

java.lang.Object : JAVA의 모든 클래스의 조상

클래스를 만들면 자동으로 상속받는 클래스

모든 클래스에서 공통적으로 사용되는 기능들을 정의한 클래스

*/

 

Object a = new Object();

Object b = new Object();

 

Test01 c = new Test01();

Object d = new Test01();

 

// 업캐스팅

 

// getClass() : 실제 인스턴스 공간의 타입을 알려주는 메소드

System.out.println(a.getClass());

System.out.println(b.getClass());

System.out.println(c.getClass());

 

// hashCode() : 인스턴스 공간의 일련번호

System.out.println(a.hashCode());

System.out.println(b.hashCode());

System.out.println(c.hashCode());

System.out.println(d.hashCode());

 

// equals(object) : 객체끼리 동일하게 비교하는 메소드

System.out.println(a == b);

 

String name = new String("김땡땡");

String name1 = new String("김땡땡");

 

System.out.println("김땡땡");

System.out.println(name == name1);

System.out.println(name.equals(name1));

 

System.out.println(name.hashCode());

System.out.println(name1.hashCode());

 

// toString() : 객체 정보를 정리해서 문자열로 반환하는 메소드

System.out.println(a);

System.out.println(a.toString());

 

System.out.println(c);

System.out.println(c.toString());

}

}

 

출력화면

 

 

wrapper class

 

 

public class Test01 {

/*

wrapper 클래스

기본형 자료형을 참조형으로 만들어 놓은 클래스

*/

 

public static void main(String[] args) {

 

Boolean a = new Boolean(true);

// false

Boolean b = new Boolean("true");

// true면 대문자든 소문자든 상관 없이 무조건 true 그 외의 모든 문자열은 false값을 갖는다

 

System.out.println(a.toString());

System.out.println(b.toString());

 

System.out.println(a == b);

System.out.println(a.equals(b));

// 객체끼리의 동일비교

 

// 자동 변환

// Auto-Boxing : 기본형 -> 참조형

String name = "김땡땡";

Boolean c = true; // 자동으로 instance 공간이 만들어지면서 true를 저장한다

// Auto-unboxing : 참조형 -> 기본형

boolean d = new Boolean(false);

System.out.println(d);

}

 

 


 

 

Exercise 1

 

API에서 Interger라는 클래스를 찾으세요 (int의 wrapper class)
API에 써진 내용들을 토대로 필요하다면 검색엔진을 활용하여
아래의 문제를 처리하는 코드 구현

[1] a와 b라는 이름의 객체 2개를 각각 100이란 값으로 생성
[2] 화면에 a와 b의 값을 출력
[3] a와 b의 값이 같은지 비교하여 화면에 '같다/다르다'를 출력
[4] a를 16진수로 변환하여 화면에 출력
[5] b를 2진수로 변환하여 화면에 출력
[6] int가 가질 수 있는 가장 큰 값을 화면에 출력
[7] String x = "12321"; String y = "32123" 이라는 변수가 있을 때
     x + y 는 1232132123 이 나옵니다
     44444가 나올 수 있도록 "정수로 변환"하여 덧셈해 보세요

 

import java.lang.*;

import java.lang.annotation.Native;

public class Test02 {

public static void main(String[] args) {

 

// [1]

int a = 100;

int b = 100;

 

// [2]

System.out.println("a의 값 : " + a);

System.out.println("b의 값 : " + b);

 

// [3]

if (a == b) {

System.out.println("같다");

} else {

System.out.println("다르다");

}

 

// [4]

System.out.printf("%x", a);

System.out.println();

 

 

// [5]

String binary = Integer.toBinaryString(b); // 10진수 -> 2진수

System.out.println(binary);

 

// [6]

System.out.println(Integer.MAX_VALUE);

 

// [7]

String x = "12321";

String y = "32123";

 

System.out.println(x+y);

System.out.println(Integer.parseInt(x) + Integer.parseInt(y));

}

 

 


 

 

Exercise 2

 

String 클래스의 기능을 활용할 것
API에서 찾으면 됨

예외 처리를 이용하여 아래의 내용을 구현하세요
사용자에게 닉네임을 입력받도록 하겠습니다

아래의 2가지 조건에 어긋날 경우 오류 출력
[1] 3~10 글자를 벗어나는 경우
"3~10글자 이내로 작성하세요."
[2] 운영자라는 단어가 포함된 경우
"운영자라는 단어는 포함시킬 수 없습니다."

 

import java.lang.*;

import java.util.Scanner;

public class Test10 {

 

public static void main (String[] args) {

Scanner sc = new Scanner(System.in);

 

while (true) {

String nickname;

 

try {

System.out.println("닉네임 입력 : ");

nickname = sc.nextLine();

 

int nicknameLength = nickname.length();

Boolean x = nickname.matches("(.*)운영자(.*)");

// nickname.contains(운영자) 사용 가능

if ( (nicknameLength > 10 || nicknameLength < 4) && x == true) {

throw new Exception ("닉네임은 3~10글자 이내로 작성하고, 운영자라는 단어는 포함시킬 수 없습니다.");

} else if ( nicknameLength > 10 || nicknameLength < 3) {

throw new Exception ("닉네임은 3~10글자 이내로 작성하세요.");

} else if (x == true) {

throw new Exception ("운영자라는 단어는 포함시킬 수 없습니다.");

}

 

} catch (Exception e) {

System.out.println(e.getMessage());

} finally {

sc.close();

}

}

}

}