- 오라클 java.lang
- Wrapper (클래스의 그룹)
- 기본자료형 → 클래스
- boolean → Boolean
- char → Character
- byte → Byte
- short → Short
- int → Integer
- long → Long
- float → Double
- 각 자료형의 최대 최소값
- 형변환 (문자열)
OOP
- 다형
- 클래스 형변환
- 상속관계에서만 가능
- 부모 ← 자식: 자동 형변환
- 자식 ← 부모: 강제 형변환
public class StringBufferEx01 {
public static void main(String[] args) {
// StringBuffer 원래값을 바꾸어서 문자열 수정
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer(100);
StringBuffer sb3 = new StringBuffer("Hello World");
//크기 : 버퍼의 크기 / 문자열의 길이
System.out.println(sb1.capacity()); //기본 16용량
System.out.println(sb2.capacity());
System.out.println(sb3.capacity()); //data + 16 용량
System.out.println(sb1.length());
System.out.println(sb2.length());
System.out.println(sb3.length());
//문자열의 조작 append, insert, delete
System.out.println(sb3);
sb3.append(" 안녕"); //대입연산자 = 가 없음
System.out.println(sb3);
sb3.insert(3, "추가");
System.out.println(sb3);
sb3.delete(0, 3);
System.out.println(sb3);
//문자열 추출
String sStr = sb3.substring(5);
System.out.println(sStr);
}
}
2
public class WrapperEx01 {
public static void main(String[] args) {
// Wrapper 기본자료형을 클래스로 사용
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
String str1 = "123";
String str2 = "3.14f";
int i = Integer.parseInt(str1); //문자열을 기본자료 형태로
float f = Float.parseFloat(str2);
System.out.println(i);
System.out.println(f);
//Wrapper class 생성
Integer i1 = new Integer("123");
Integer i2 = new Integer(123);
int ii1 = i1.intValue();
int ii2 = i2.intValue();
//auto boxing //Wrapper class 생성의 단순화
Integer i3 =20;
//auto unboxing
int ii3 = i3;
if(i3 == ii3){ //자동으로 기본자료형과 클래스를 내용비교
System.out.println("같다");
}
}
}
3
public class CalculatorEx01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
if(args.length != 3){
System.out.println("인자의 갯수가 틀립니다.");
}else{
int value1 = Integer.parseInt(args[0]);
int value2 = Integer.parseInt(args[2]);
if(args[1].equals("+")){
System.out.println("결과 : " + (value1 + value2));
}else if(args[1].equals("-")){
System.out.println("결과 : " + (value1 - value2));
}else if(args[1].equals("X")){
System.out.println("결과 : " + (value1 * value2));
}else if(args[1].equals("/")){
System.out.println("결과 : " + (value1 / value2));
}
}
}
}
4
public class MathEx01 {
public static void main(String[] args) {
// Math클래스 // 메소드는 모두 static으로 인스턴스멤버를 갖지않음
//올림
System.out.println(Math.ceil(10.3));
System.out.println(Math.ceil(10.5));
System.out.println(Math.ceil(10.6));
//내림
System.out.println(Math.floor(10.3));
System.out.println(Math.floor(10.5));
System.out.println(Math.floor(10.7));
//반올림
System.out.println(Math.round(10.3));
System.out.println(Math.round(10.5));
System.out.println(Math.round(10.7));
//랜덤 //출력 볌위 0 <= x < 1
System.out.println(Math.random());
System.out.println(Math.random());
//0 <= x < 10
System.out.println((int)(Math.random()*10));
System.out.println((int)(Math.random()*10));
//1 <= x <= 45
System.out.println((int)(Math.random()*44+1));
}
}
5
import java.io.IOException;
public class ProcessBuilderEx01 {
public static void main(String[] args) {
// ProcessBuilder
try {
Process proc = new ProcessBuilder("C:/Program Files/Internet Explorer/iexplore.exe", "www.google.com").start();
} catch (IOException e) {
}
}
}
6
public class Parent {
public String p = "홍길동";
public void viewParent1(){
System.out.println("viewParent1()");
}
public void viewParent2(){
System.out.println("viewParent2()");
}
}
public class Child1 extends Parent{
public String c = "이순신";
public void viewChild(){
System.out.println("viewChild()");
}
public void viewParent2(){
System.out.println("child viewParent2() override");
}
}
public class Child2 extends Parent{
public String c = "박문수";
public void viewChild(){
System.out.println("viewChild()");
}
}
public class MainEx {
public static void main(String[] args) {
Parent p1 = new Parent();
Child1 c1 = new Child1();
Child2 c2 = new Child2();
System.out.println(c1.p);
System.out.println(c1.c);
c1.viewParent1();
c1.viewChild();
c1.viewParent2();
//형변환
Parent p2 = c1;
Parent p3 = new Child1();
System.out.println(p2.p);
//System.out.println(p2.c); //부모클래스 외의 것은 사용하지 못함
p2.viewParent1();
//p2.viewChild(); //부모클래스 외의 것은 사용하지 못함
p2.viewParent2(); //오버라이딩 된 부모의 메소드는 자식의 메소드를 사용함
System.out.println();
//강제 형변환
// Child1 c11 = (Child1) new parent(); //부모를 자식으로 바로 형변환 불가
Child1 c11 = (Child1)p2; //부모는 자식을 통해서 생성된 부모여야 함
System.out.println(c11.p);
System.out.println(c11.c);
c11.viewParent1();
c11.viewChild();
c11.viewParent2();
}
}
7
public class Parent {
public String p = "홍길동";
public void viewParent2(){
System.out.println("viewParent2()");
}
}
public class Child1 extends Parent{
public String p = "홍길동child"; //부모클래스의 필드를 중복해서 쓸수는 있지만 오버라이딩 할 수 없음
@Override
public void viewParent2(){
System.out.println("child viewParent2() --override");
}
}
public class Child2 extends Parent{
@Override
public void viewParent2() {
System.out.println("child2 viewParent2() --child1 override");
}
}
public class MainEx2 {
public static void main(String[] args) {
Child1 c1 = new Child1();
Child2 c2 = new Child2();
c1.viewParent2();
c2.viewParent2();
//다형성 //특징 : 상속, 오버라이딩, 형변환
//부모를 통해서 자식 각각을 호출
//추상의 개념과 비슷함 --추상은 개발자 입장에서 편리함
// --다형은 사용자 입장에서 편리함
Parent p1 = new Child1();
Parent p2 = new Child2();
p1.viewParent2(); // 자식의 메소드가 override 됨
p2.viewParent2(); // 자식의 메소드가 override 됨
Parent p = new Parent();
System.out.println(p.p);
System.out.println(c1.p);
System.out.println(p1.p); //자식으로 부터 부모객체를 생성했지만 필드는 override되지 않음
}
}
8
public class Outer {
private int x1 = 100;
public int x2 = 100;
class Inner{
private int y1 = 200;
public int y2 = 200;
public void viewInner(){
System.out.println("viewInner 호출");
System.out.println(x1);
System.out.println(x2);
System.out.println(y1);
System.out.println(y2);
}
}
}
public class MainEx {
public static void main(String[] args) {
//중첩클래스의 선언
Outer ot = new Outer();
Outer.Inner oi = ot.new Inner(); //Inner class선언이 특이함
//System.out.println(ot.x1); //private 접근 불가
System.out.println(ot.x2);
//System.out.println(oi.y1); //private 접근 불가
System.out.println(oi.y2);
oi.viewInner();
}
}
9
class Outer2{
private int x = 100;
static class Inner2{
private int y = 200;
public void aaa(){
// System.out.println("x = " + x); //static 클래스에서 인스턴스멤버를 사용할 수 없음
System.out.println("y = " + y);
}
}
}
public class Ex03 {
public static void main(String[] args) {
Outer2.Inner2 oi = new Outer2.Inner2(); //static Inner 클래스의 선언
oi.aaa();
}
}
10
public class MainEx01 {
public static void main(String[] args) {
int x = 100;
//지역 중첩 클래스 //특정 클래스 안에서만 사용 //접근제한자, 지정예약어 없음
class Inner {
int y = 200;
public void viewInner(){
System.out.println(x);
System.out.println(y);
}
}
Inner i = new Inner();
i.viewInner();
}
}
11
public class Inner {
int y = 100;
public void viewInner(){
}
}
public class MainEx {
public static void main(String[] args) {
int x = 100;
//익명 중첩클래스
Inner i = new Inner(){ //부모의 클래스로 객체를 생성하면서 자신만의 멤버를 선언한다
@Override
public void viewInner() {
System.out.println(x);
System.out.println(y);
}
};
i.viewInner();
}
}
12
public class JuminCheckEx02 {
public static boolean checkJumin(String jumin){
String strJumin = jumin.replaceAll("-", "");
int[] bits = {2,3,4,5,6,7,8,9,2,3,4,5};
int sum = 0;
for(int i=0; i<bits.length; i++){
sum += Integer.parseInt(strJumin.substring(i,i+1))*bits[i];
}
int last = Integer.parseInt(strJumin.substring(12,13));
int result = (11-sum%11)%10;
if(result == last){
return true;
}else{
return false;
}
}
public static void main(String[] args) {
//주민번호 메소드
if(args.length != 1){
System.out.println("java 클래스명 xxxxxx-xxxxxxx형식으로 입력하셔야 합니다.");
}else if(args[0].length() != 14){
System.out.println("14자리를 입력하셔야 합니다.");
}else{
if(checkJumin(args[0])){
System.out.println("정확한 주민번호입니다.");
}else{
System.out.println("부정확한 주민번호입니다.");
}
}
}
}
public static void main(String[] args) {
//주민번호 메소드
if(args.length != 1){
System.out.println("java 클래스명 xxxxxx-xxxxxxx형식으로 입력하셔야 합니다.");
System.exit(0); //시스템을 종료함
}
if(args[0].length() != 14){
System.out.println("14자리를 입력하셔야 합니다.");
System.exit(0);
}
if(checkJumin(args[0])){
System.out.println("정확한 주민번호입니다.");
}else{
System.out.println("부정확한 주민번호입니다.");
}
}
댓글 없음:
댓글 쓰기