JAVA.lang 계층 구조
API 도큐먼트
Overview (Java Platform SE 8 ) (oracle.com)
java.lang 패키지
객체생성의 근간이 되는 최상위 계층
자바는 다양한 패키지 라이브러리를 미리 만들어 놓음
자바 패키지에 있는 클래스와 인터페이스는 import 없이 사용 가능
https://docs.oracle.com/javase/8/
F1 으로 도움말 볼 수있다.
API 도큐먼트에서 클래스 페이지 읽는 방법
1.
2. 클래스에 final, abstract 키워드가 있으면 상속이나, 재정의가 불가능하다.
3.
Object 클래스
클래스를 선언할 때 extends 로 상속을 하지 않더라도, 묵시적, 암시적, 자동적으로 java.lang.Object 클래스를 상속하게 된다.
▶ 자손클래스 : 자바의 모든 클래스는 Object 클래스의 자식 이거나 자손 클래스이다.
▶ Object : 자바의 최상의 부모 클래스에 해당한다.
따로 상속하지 않더라도 기본적으로 상속이 되어있다.
객체비교
obj1 과 obj2 를 다르게 인식
객체 동등 equals
MemberExample
Member. class
package chapter11.sec01.exam01;
// 객체 동등 비교(equals() 메서드 활용)
public class Member {
// id 필드 선언
public String id;
// 매개 변수로 id 값을 처리하는 Member 생성자 선언
public Member(String id) {
this.id = id;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Member) { // 매개값 obj가 Member 타입인지 확인함
Member member = (Member) obj; // Member 타입으로 강제 타입 변환하고,
// id 필드값이 동일한지 검사한 후에,
// 만약에(if문) 동일하다면 true 를 리턴처리하게 함
if(id.equals(member.id)) {
return true;
}
// 매개값 obj가 Member 타입이 아니거나 id 필드값이 다른 경우에는 false를 리턴하게 함
}
return false;
}
}
MemberExample 실행클래스
package chapter11.sec01.exam01;
//객체 동등 비교(equals() 메서드 활용) 이해를 위한 MemberExample 실행클래스를 소스코딩합니다.
public class MemberExample {
public static void main(String[] args) {
Member obj1 = new Member("blue");
Member obj2 = new Member("blue");
Member obj3 = new Member("red");
// 매개값이 Member 타입이고, id 필드값도 동일하므로 true 입니다!
if (obj1.equals(obj2)) {
System.out.println("obj1과 obj2는 동등합니다!");
}else {
System.out.println("obj1과 obj2는 동등하지 않습니다.");
}
// new 명령어로 생성된 두개의 객체는 == 메모리 비교에서 false를 나타냅니다.
if (obj1 == obj2) {
System.out.println("obj1과 obj2는 동등합니다!");
}else {
System.out.println("obj1과 obj2는 동등하지 않습니다.");
}
if (obj1.equals(obj3)) {
System.out.println("obj1과 obj3는 동등합니다!");
}else {
System.out.println("obj1과 obj3는 동등하지 않습니다.");
}
if (obj1==obj3) {
System.out.println("obj1과 obj3는 동등합니다!");
}else {
System.out.println("obj1과 obj3는 동등하지 않습니다.");
}
}
}
객체 해시코드 hashCode()
객체를 식별하는 하나의 정수값
// hashCode() 메서드를 재정의하지 않은 예시
Key. class
기존에 우리는 하나의 변수의 하나의 값을 넣었다.
HashMap 자료구조: 중복되는 값(Value)과 중복되지 않는 값(Key)을 한 쌍을 이루어 데이터를 처리하는 자료구조
ex) 이름 - 주민번호
Key.class
package chapter11.sec01.exam02;
// hashCode() 메서드를 재정의하지 않은 예시
public class Key {
public int number;
public Key(int number) {
this.number = number;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Key) {
Key compareKey = (Key) obj;
if (this.number == compareKey.number) {
return true;
}
}
return false;
}
// page476 : hashCode() 메서드 재정의 추가
// Object의 equals() 메서드만 재정의하지 않고, hashCode() 메서드도 재정의해서
// 논리적으로 동등한 객체일 경우, 동일한 해쉬코드가 리턴되도록 처리해야합니다.
@Override
public int hashCode() {
return number;
}
}
KeyExample
package chapter11.sec01.exam02;
import java.util.HashMap;
// 다음 예제에서 new 명령어로 Key(1) 객체로 "장나라"를 저장하고,
// 다시 new 명령어로 Key(1) 객체로 저장된 "장나라" 읽으려고 하면결과가 null로 나타나느것을 확인해봅니다.
public class KeyExample {
public static void main(String[] args) {
// HashMap은 키(Key)와 값(Value)을 페어(한 쌍)으로 처리하는 자료구조를 활용합니다.
// Key 객체를 식별키로 사용해서 String 값을 저장하는 HashMap 객체 생성
HashMap<Key, String> hashMap = new HashMap<Key, String>();
// 식별키 new Key(1)로 "장나라"를 저장합니다.
hashMap.put(new Key(1), "장나라");
// 식별키 new Key(1)로 "장나라"를 읽었습니다.
String value = hashMap.get(new Key(1));
System.out.println(value);
}
}
객체 문자정보(toString())
toString() 메소드는 객체의 문자정보를 리턴한다.
package chapter11.sec01.exam04;
import java.util.Date;
import javax.xml.crypto.Data;
// 다음 예제는 Object 클래스와 Date 클래스의 toString()메서드의 리턴값을 출력해 본 예시입니다.
// 객체의 문자정보 : toString() 메서드 활용 예시
public class ToStringExample {
public static void main(String[] args) {
Object obj1 = new Object();
System.out.println(obj1.toString()); //java.lang.Object@15db9742
Date obj2 = new Date();
System.out.println(obj2.toString()); // Wed Aug 30 13:44:21 KST 2023
}
}
객체의 문자정보 toString() 메서드
SmartPhone.class
package chapter11.sec01.exam05;
// 다음 예제의 SmartPhone 클래스에서 toString() 메서드를 오보라이딩(재정의)하여
// 제작회사(company)와 운영체제(os)를 리턴 처리하도록 합니다.
// 객체의 문자정보: toString() 메서드 활용 예시
public class SmartPhone {
private String company;
private String os;
public SmartPhone(String company, String os) {
this.company = company;
this.os = os;
}
// Object 클래스에 있는 toString() 메서드를 메서드 오버라이딩(메서드 재정의)해서 활용합니다.
@Override
public String toString() {
return company + "," + os;
}
}
SmartPhoneExample.class
package chapter11.sec01.exam05;
// 앞서 생성한 SmartPhone 클래스를 활용하여 객체의 문자 정보 처리합니다 : toString() 메서드 활용 예시
public class SmartPhoneExample {
public static void main(String[] args) {
SmartPhone myPhone = new SmartPhone("구글", "안드로이드 운영체제");
String strobj = myPhone.toString(); // 오버라이딩(재정의)된 toString() 메서드 호출
System.out.println(strobj); // 구글, 안드로이드 운영체제
//오버라이딩(재정의)된 toString()을 호출하고 리턴값을 받아서 처리함
System.out.println(myPhone); // 구글, 안드로이드 운영체제
}
}
해쉬코드 확인
System 클래스
▶ exit() 메소드 : 현재 실행하고 있는 프로세스를 강제 종료시키는 역할
system.exit(0);
exit() 과 break의 차이점
package chapter11.sec01.exam06;
// 다음 예제는 for문이 10번 반복하다가 i가 5가 되면 System.exit(0)이 실해오디어
// 자바 프로그램(JVM)을 종료 처리합니다.
public class ExitExample {
public static void main(String[] args) {
// for문으로 i변수를 0 부터 9까지 10번 반복 처리하게 합니다.
for (int i = 0; i < 10; i++) {
// 만약에 (if문) i변수값이 5가 되었을 경우에는,
if(i == 5) {
// System.exit(0); //시스템(자바프로그램)을 종료 처리합니다.
break; // 구간을 종료할 때 사용
}
}
System.out.println("마무리 코드!");
}
}
현재 시각 읽기 (currentTimeMillis(), nanoTime())
package chapter11.sec01.exam07;
// System 클래스의 currentTimeMillis() 메서드와 nanoTime()메서드는
// 컴퓨터의 시계로부터 현재 시간을 읽어서 밀리세컨드(1/1000초) 단위와 나노세컨드(1/1000000000) 단위의
// long값을 리턴처리합니다. 이떄, 리턴값은 주로 프로그램의 실행요소 시간측정에 사용합니다.
// 프로그램 시작시 시각을 읽고, 프로그램이 끝날 때 시각을 읽어서 처리를 구하면 프로그램 실행 요소시간이 나옵니다.
//다음 예제는 for문ㅇ르 사용해서 1부터 1000000까지의 합을 구하는데 걸린시간을 출력하는 자바프로그램입니다.
// 자바 프로그램 실행 요소 시간 구하는 예시
public class SystemTimeExample {
public static void main(String[] args) {
long time1 = System.nanoTime(); // 시작 시간 읽기
int sum = 0;
for (int i = 1; i <= 1000000; i++) {
sum += i; // sum = sum + i;
}
long time2 = System.nanoTime(); // 종료 시간읽기
System.out.println("1 ~ 1000000 까지의 합" + sum);
System.out.println("합계 계산에" + (time2 -time1) + "나노초가 소요 되었습니다");
}
}
Class 클래스
▶ 메타데이터:
객체얻기를 왜하는 걸까??
우리가 정보를 보기 위해서 하는 것이다.
더 중요한 것은 java도 이러한 경로를 이해한다. 애플리케이션을 경로를 이해해야한다. project가 경로를 이해하고 있는지 확인해야한다. java가 경로에 있는 것을 인지시키고 처리하게 해야한다.
// Class 객체 정보를 얻는 ClassExample 실행 클래스를 소스 코딩
package chapter11.sec01.exam08;
import chapter08.sec02.exam01.Car;
// Class 객체 정보를 얻는 ClassExample 실행 클래스를 소스 코딩합니다.
public class ClassExample {
public static void main(String[] args) throws ClassNotFoundException {
//Class 객체 정보를 얻는 첫번째 방법
Class clazz = Car.class;
System.out.println(clazz.getName()); //chapter08.sec02.exam01.Car
//Class 객체 정보를 얻는 두번째 방법
Class clazz2 = Class.forName("chapter08.sec02.exam01.Car");
System.out.println(clazz2.getSimpleName()); //Car
//Class 객체 정보를 얻는 세번째 방법
Car car = new Car();
Class clazz3 = car.getClass();
System.out.println(clazz3.getPackage().getName()); //chapter08.sec02.exam01
}
}
자바가 경로를 인식시키게한다.
// Class 클래스 활용 리소스(Resource) 절대 경로값 정보 얻기
package chapter11.sec01.exam09;
// Class 클래스 활용 리소스(Resource) 절대 경로값 정보 얻기
public class ResourcePathExample {
public static void main(String[] args) {
Class clazz = Car.class;
System.out.println(clazz.getName()); //chapter11.sec01.exam09.Car
// 애플리케이션에서 경로를 인지해야한다.
String photo1Path = clazz.getResource("photo1.jpg").getPath();
System.out.println(photo1Path);
String photo2Path = clazz.getResource("images/photo2.jpg").getPath();
System.out.println(photo2Path);
}
}
바이트 배열을 문자열로 변환
package chapter11.sec01.exam11;
import java.io.IOException;
// 다음 예제는 10라인에서 String(byte[] bytes, int offset, in length) 형태로
// 바이트 배열을 문자열로 변환하였는데, length 매개값으로 배열 길이에서 2를 빼준 이유는
// 캐리지리턴(\r)+라인피드(\n) 부분은 문자열로 만들 필요가 없기 때문입니다.
// 바이트 배열을 문자열로 반환처리하는 KeyboardToStringExample 실행 클래스 소스코딩입니다.
public class KeyboardToStringExample {
public static void main(String[] args) throws IOException {
byte[] bytes = new byte[100]; // 읽은 바이트를 저장하기 위한 배열 생성
System.out.print("입력 = ");
// 배열에 읽은 바이트를 저장하고 읽은 바이트 수를 리턴처리함
int readByteNo = System.in.read(bytes);
// 아래에서 배열을 문자열로 변환 처리함. length 매개값으로 배열 길이에서 2를 빼준 이유는
// 캐리지리턴(\r)+라인피드(\n) 부분은 문자열로 만들 필요가 없기 때문입니다.
String str = new String(bytes, 0, readByteNo-2);
System.out.println("문자열 변환 처리 결과 = " + str);
}
}
// 실행결과
//입력 = hello
//문자열 변환 처리 결과 = hello
민등혹번호에서 남성과 여성 구분 처리
package chapter11.sec01.exam12;
// 다음 예제는 주민등록번호에서 7번째 인덱스 문자를 읽어서 남성과 여성을 구별하는 자바 프로그램입니다.
// charAt() 메서드 활용, 주민등혹번호에서 남성과 여성 구분 처리 자바 프로그램 예시를 소스 코딩합니다.
public class StringCharAtExample {
public static void main(String[] args) {
// index = 012345678910(7)11(6)12(2)13(4)
String ssn = "010624-2357645";
char gender = ssn.charAt(7);
// System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(0)); // 0
// System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(6)); // -
System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(7)); // 2
// System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(13)); // 5
switch (gender) {
case '1':
case '3':
System.out.println("남성입니다");
break;
case '2':
case '4':
System.out.println("여성 입니다");
break;
}
}
}
scanner로 입력값 받아서 출력하기
package chapter11.sec01.exam12;
import java.util.Scanner;
// 다음 예제는 주민등록번호에서 7번째 인덱스 문자를 읽어서 남성과 여성을 구별하는 자바 프로그램입니다.
// charAt() 메서드 활용, 주민등혹번호에서 남성과 여성 구분 처리 자바 프로그램 예시를 소스 코딩합니다.
public class StringCharAtExample {
public static void main(String[] args) {
// index = 012345678910(7)11(6)12(2)13(4)
// String ssn = "010624-2357645";
Scanner scan = new Scanner(System.in);
System.out.print("주민등록 번호를 - 문자 포함해서 14자리로 입력해주세요==>");
String ssn= scan.next();
char gender = ssn.charAt(7);
// System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(0)); // 0
// System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(6)); // -
System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(7)); // 2
// System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(13)); // 5
switch (gender) {
case '1':
case '3':
System.out.println("남성입니다");
break;
case '2':
case '4':
System.out.println("여성 입니다");
break;
}
}
}
package chapter11.sec01.exam13;
// 문자열 비교 이해를 위해 StringEqualsExample 실행 클래스를 소스 코딩합니다.
public class StringEqualsExample {
public static void main(String[] args) {
String strVar1 = new String("장나라");
System.out.println(strVar1.hashCode()); // equals 메서드는 같다.
String strVar2 = "장나라";
System.out.println(strVar2.hashCode()); // equals 메서드는 같다.
if(strVar1 == strVar2) {
System.out.println("같은 String 객체를 참조합니다.");
}else {
System.out.println("다른 String 객체를 참조합니다.");
}
if(strVar1.contentEquals(strVar2)) {
System.out.println("같은 String 객체를 참조합니다.");
}else {
System.out.println("다른 String 객체를 참조합니다.");
}
}
}
바이트 배열로 변환
EUC-KR 과 UTF-8 비교
▶ EUC-KR : 알파벳 1바이트, 한글 2바이트로 변환
▶ UTF-8 : 알파벳 1바이트, 한글 3바이트로 변환
바이트 배열로 변환 처리하는 StringGetBytesExample
package chapter11.sec01.exam14;
import java.io.UnsupportedEncodingException;
// 다음 예제에서는 문자열을 바이트 배열로 인코딩하고 길이를 출력해 봅니다.
// 그리고 다시 String 생성자를 이용해서 문자열로 디코딩 처리해봅니다.
// 바이트 배열로 변환 처리하는 StringGetBytesExample 실행 클래스를 소스코딩합니다.
public class StringGetBytesExample {
public static void main(String[] args) {
String str = "안녕하세요!";
byte[] bytes1 = str.getBytes(); // 사람이 이해하는 문자열을 컴퓨터가 이해하는 문자열로 변환
System.out.println("bytes1.length = " + bytes1.length); //bytes1.length = 16(3*5)+1 = 16
String str1 = new String(bytes1);
System.out.println("bytes1 -> String = " + str1); //bytes1 -> String = 안녕하세요!
try {
// EUC-KR을 이용해서 인코딩 및 디코딩 처리확인
byte[] bytes2 = str.getBytes("EUC-KR");
System.out.println("bytes2.length = " + bytes2.length); //bytes2.length = 11(2*5)+1 = 16
String str2 = new String(bytes2, "EUC-KR");
System.out.println("bytes2 -> String = " + str2); //bytes2 -> String = 안녕하세요!
// EUC-KR을 이용해서 인코딩 및 디코딩 처리확인
byte[] bytes3 = str.getBytes("UTF-8");
System.out.println("bytes3.length = " + bytes3.length); //bytes3.length = 11(2*5)+1 = 16
String str4 = new String(bytes3, "UTF-8");
System.out.println("bytes3 -> String = " + str4); //bytes2 -> String = 안녕하세요!
} catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
문자열 찾기 indexOf( )
▶ - 1 : 문자열이 포함되어 있지 않으면 , 검색할 데이터가 없을 때 나온다.
// indexOf() 메서드를 활용하여 문자열 포함 여부를 파악하는 자바프로그램을 소스 코딩합니다.
★★★★★ 문자열 대치 replace()
String 객체의 문자열은 변경이 불가능한 특성을 갖기 때문에 replace() 메서드가 리턴하는 문자열은 원래 문자열의 수정본이 아니라 완전히 새로운 문자열이다. 따라서 newStr 변수는 새로운 문자열을 참조한다.
// replace() 메서드를 활용하여, 문자열을 대체하여 처리하는 자바 프로그램 소스 코딩을 합니다.
package chapter11.sec01.exam17;
// replace() 메서드를 활용하여, 문자열을 대체하여 처리하는 자바 프로그램 소스 코딩을 합니다.
public class StringReplaceExample {
public static void main(String[] args) {
String oldStr = "자바는 객체 지향 언어입니다! 자바는 풍부한 API 를 지원합니다.";
System.out.println(oldStr);
String newStr = oldStr.replace("자바", "JAVA");
System.out.println(newStr);
}
}
package chapter11.sec01.exam17;
import java.util.Scanner;
// replace() 메서드를 활용하여, 문자열을 대체하여 처리하는 자바 프로그램 소스 코딩을 합니다.
public class StringReplaceExample {
public static void main(String[] args) {
String oldStr = "자바는 객체 지향 언어입니다! 자바는 풍부한 API 를 지원합니다.";
Scanner scan = new Scanner(System.in);
System.out.println("oldStr에서 변경할 문자를 입력해 주시기 바랍니다==>");
String changeStr = scan.next();
System.out.println("oldStr에서 변경된 문자를 입력해 주시기 바랍니다==>");
String completeStr = scan.next();
System.out.println(oldStr);
// String newStr = oldStr.replace("자바", "JAVA");
String newStr = oldStr.replace(changeStr, completeStr);
System.out.println(newStr);
}
}
/*
실행결과 oldStr에서 변경할 문자를 입력해 주시기 바랍니다==> 자바 oldStr에서 변경된 문자를 입력해 주시기 바랍니다==>
java 자바는 객체 지향 언어입니다! 자바는 풍부한 API 를 지원합니다. java는 객체 지향 언어입니다! java는 풍부한 API 를
지원합니다.
*/
StringToLowerUpperCaseExample
문자열 앞뒤 공백 잘라내기 trim()
package chapter11.sec01.exam20;
// trim() 메서드 활용 문자열의 앞뒤 공백 제거를 처리하는 자바 프로그램소스를 코딩합니다.
public class StringExample {
public static void main(String[] args) {
String tel1 = " 02";
String tel2 = "123 ";
String tel3 = " 1234 ";
String tel = tel1.trim() + tel2.trim() + tel3.trim();
System.out.println(tel); //021231234
}
}
package chapter11.sec01.exam21;
// 기본타입 값을 문자열 반환 처리를 위해 valueOf() 메서드를 활용해 봅니다.
public class StringValueOfExample {
public static void main(String[] args) {
// int = 10
String str1 = String.valueOf(10);
System.out.println(str1); // 10
// double =10.5
String str2 = String.valueOf(10.5);
System.out.println(str2); //10.5
// boolean =true
String str3 = String.valueOf(true);
System.out.println(str3); //true
}
}
Wrapper(포장) 클래스
// 기본 타입(primitive type)의 값을 박싱(Boxing)하고 언박싱(Unboxing) 처리하는 예시입니다.
package chapter11.sec01.exam22;
// 기본 타입(primitive type)의 값을 박싱(Boxing)하고 언박싱(Unboxing) 처리하는 예시입니다.
public class BoxingUnBoxingExample {
public static void main(String[] args) {
// 박싱 처리
Integer obj1 = new Integer(100); // 100은 int형입니다. 그것을 객체로 생성처리 합니다!
// "200"은 String형입니다. 그것을 정수형 객체로 생성처리합니다!
Integer obj2 = new Integer("200");
// "300"은 String형입니다. 그것을 정수형 객체로 생성처리합니다!
Integer obj3 = new Integer("300");
// 언박싱 처리
int value1 = obj1.intValue(); // 객체로 생성된 100데이터를 기본 int형 100값으로 처리합니다!
System.out.println(value1);
int value2 = obj2.intValue(); // 객체로 생성된 200데이터를 기본 int형 200값으로 처리합니다!
System.out.println(value2);
int value3 = obj3.intValue(); // 객체로 생성된 300데이터를 기본 int형 300값으로 처리합니다!
System.out.println(value3);
}
}
package chapter11.sec01.exam23;
// 자동 박싱과 언박싱 활용 예시입니다.
public class AutoBoxingUnBoxingExample {
public static void main(String[] args) {
//자동 박싱
Integer obj =100;
System.out.println("value = " + obj.intValue());
// 대입 시 자동 언박싱
int value = obj;
System.out.println("value = " + value);
// 연산 시 자동 언박싱
int result = obj + 100;
System.out.println("result: " + result);
}
}
package chapter11.sec01.exam24;
// 문자열을 기본 타입(primitive type) 값으로 변환 처리하는 자바 프로그램 소스코딩
public class StringToPrimitiveValueExample {
public static void main(String[] args) {
int value1 = Integer.parseInt("10");
System.out.println("value1 = " + value1); //value1 = 10
double value2 = Double.parseDouble("3.14");
System.out.println("value2 = " + value2); //value2 = 3.14
boolean value3 = Boolean.parseBoolean("true");
System.out.println("value3 = " + value3); //value3 = true
}
}
포장객체 비교
package chapter11.sec01.exam25;
// 포장 객체에 정확히 어떤 값이 저장될지 모를 상황이라면 == 과 != 연산자는 사용하지 않는 것이 좋습니다.
// 직접 내부 값을 언박싱해서 비교하거나, equals() 메서드로 내부 값을 비교하는 것이 좋습니다.
// 참고로, 포장 클래스의 equals() 메서드는 내부의 값을 비교하도록 재정의 되어 있습니다.
// 포장 객체 비교를 이해하기 위한 ValueCompareExample 실행 클래스를 소스 코딩합니다.
public class ValueCompareExample {
public static void main(String[] args) {
System.out.println("[-128~127 초과값일 경우]");
Integer obj1 = 300;
Integer obj2 = 300;
System.out.println("== 결과: " + (obj1 == obj2)); // == 결과 : false
System.out.println("언박싱후 == 결과 : " + (obj1.intValue() == obj2.intValue()));
// 언박싱후 == 결과 : true
System.out.println("equals() 처리 결과: " + obj1.equals(obj2));
// equals() 처리 결과: true
System.out.println("======================================");
System.out.println("[-128~127 범위값일 경우]");
Integer obj3 = 10;
Integer obj4 = 10;
System.out.println("== 결과: " + (obj3 == obj4)); // == 결과 : true
System.out.println("언박싱후 == 결과 : " + (obj3.intValue() == obj4.intValue()));
// 언박싱후 == 결과 : true
System.out.println("equals() 처리 결과: " + obj3.equals(obj4));
// equals() 처리 결과: true
}
}
Math클래스
Math Example
package chapter11.sec01.exam26;
// Math의 수학 메서드 활용 MathExample 실행 클래스를 소스 코딩합니다.
public class MathExample {
public static void main(String[] args) {
int v1 = Math.abs(-5);
System.out.println("v1 = " + v1); //v1 = 5
double v2 = Math.abs(-3.14);
System.out.println("v2 = " + v2); //v2 = 3.14
double v3 = Math.abs(5.3);
System.out.println("v3 = " + v3); //v3 = 5.3
double v4 = Math.abs(-5.3);
System.out.println("v4 = " + v4); //v4 = 5.3
double v5 = Math.abs(5.3);
System.out.println("v5 = " + v5); //v5 = 5.3
double v6 = Math.abs(-5.3);
System.out.println("6v = " + v6); //6v = 5.3
//max
int v7 = Math.max(5, 9);
System.out.println("v7 = " + v7); // v7 = 9
double v8 = Math.max(5.3, 2.5);
System.out.println("v8 = " + v8); //v8 = 5.3
int v9 = Math.min(5, 9);
System.out.println("v9 = " + v9); //v9 = 5
double v10 = Math.min(5.3, 2.5);
System.out.println("v10 = " + v10); //v10 = 2.5
//random
double v11 = Math.random();
System.out.println("v11 = " + v11); //v11 = 0.5605948528201716
//rint
double v12 = Math.rint(5.3);
System.out.println("v12 = " + v12 ); //v12 = 5.0
double v13 = Math.rint(5.7);
System.out.println("v13 =" + v13); //v13 =6.0
//round
long v14 = Math.round(5.3);
System.out.println("v14 = " + v14); //v14 = 5
long v15 = Math.round(5.7);
System.out.println("v15 = " + v15); //v15 = 6
// 소수 둘째 자리까지(소수점 셋째 자릿수에서 반올림하는) 반올림 표현 예시 코드
double value = 12.3456;
double temp1 = value * 100;
long temp2 = Math.round(temp1);
double v16 = temp2 / 100.0;
System.out.println("v16 = " + v16); //v16 = 12.35
}
}
MathRandomExample
package chapter11.sec01.exam27;
import java.util.Scanner;
// 임의의 주사위의 눈값을 얻는 자바 프로그램 소스 코딩합니다.
public class MathRandomExample {
public static void main(String[] args) {
// int num = (int) (Math.random()*6) + 1;
// System.out.println("주사위 눈 = " + num);
// 주사위 번호 뽑기(1, 2, 3, 4, 5, 6)
// int num = (int) (Math.random()*6) + 1;
// 로또 번호 뽑기(1,2,3, ... 43, 44, 45)
// int num = (int) (Math.random() * 45) + 1;
// 참가자들의 이벤트 당첨 번호를 화면으로 알려주는 자바프로그램을 소스 코딩해봅니다.
Scanner scan = new Scanner(System.in);
System.out.println("참가자들의 숫자를 입력해주세요 ==>");
int eventNum = scan.nextInt();
int eventResultNum = (int)(Math.random()*eventNum)+1;
System.out.println("참가자들 중에서 이벤트 당첨자 번호 = " + eventResultNum);
}
}
'☭DEVELOPER > #2 웹개발(자바기반 풀스택)' 카테고리의 다른 글
[BACKEND]JAVA_ECLIPSE25 java.util 패키지 (0) | 2023.08.31 |
---|---|
[BACKEND] 코딩테스트8 (0) | 2023.08.31 |
[BACKEND]코딩 테스트 7 (0) | 2023.08.30 |
[BACKEND]JAVA_ECLIPSE23 예외 처리 (0) | 2023.08.29 |
[BACKEND]JAVA_ECLIPSE22 익명 객체 (0) | 2023.08.29 |