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();
}
}
}
}
'Backend > JAVA' 카테고리의 다른 글
JAVA 객체지향 프로그래밍 OOP, Class 상속 - 부모클래스, 자식클래스 (0) | 2023.02.27 |
---|---|
JAVA 코딩 API (Application Programming Interface) - Collections Framework (0) | 2023.02.23 |
JAVA 코딩 Class 클래스 다형성 (0) | 2023.02.23 |
JAVA 코딩 객체지향프로그래밍 OOP, 배열 클래스 Array Class (0) | 2023.02.22 |
JAVA 코딩 객체지향프로그래밍 OOP, Class 중첩클래스 - 일반중첩클래스, static중첩클래스, 지역중첩클래스, 익명중첩클래스 (0) | 2023.02.21 |