멍발자의 개발

클래스 라이브러리 본문

STUDY/Java

클래스 라이브러리

개발하는 멍발자 2022. 4. 1. 11:24

스캐너 / System / String / Exceptiom = 클래스 라이브러리에서 제공되는 클래스다.

 

문자열을 취급하는 클래스

 

Computer com = new Computer();

클래스명  변수명  객체

String      str    =  "Hello World!";

 

new 연산자를 이용한 String 클래스의 생성

String str = new Stirng("Hello world!");

 

전통적인 방법

String str = "Hello World!";

 

문자열 길이와 1문자를 꺼내는 프로그램

 

 

public class LengthCharAt {
    public static void main(String[] args) {
        String str = "Java 프로그래밍 ! "; // 문자열 설정
        char ch1 = str.charAt(0); // 첫번째 문자 얻기
        char ch7 = str.charAt(6); // 7번째 문자 얻기
        int len = str.length(); // 문자열 길이 가져옴


        //결과 표시
        System.out.println(str + "의 첫번째 문자는 " + ch1 + "입니다.");
        System.out.println(str + "7번째 문자는 " + ch7 + "입니다.");
    }
}

//결과
Java 프로그래밍 ! 의 첫번째 문자는 J입니다.
Java 프로그래밍 ! 7번째 문자는 로입니다.

문자열을 분할하는 프로그램

 

substring 메소드

 

public class StringSplit {
    public static void main(String[] args){
        //변수 선언
        String str1 = "12345";
        String str2 = "AB:CD:EF";

        //substring메소드를 사용하여 임의의 위치에서 분할
        System.out.println(str1 + "의 처음부터 3번째 문자는 " + str1.substring(0, 3) + "입니다.");
        System.out.println(str1 + "의 세번째 문자부터 마지막 문자는 " + str1.substring(2) + "입니다.\n" );
        
        //split메소드를 이용하여 지정문자 ":"fh qnsgkf
        String[] strArray = str2.split(":");
        
        //분할된 몇분동안 루프처리
        for(int i = 0; i < strArray.length; i++) {
            System.out.println(":으로 나누어진 " + (i + 1) + "2번째 문자는 " + strArray[i]+ "입니다.");
        }
                
    }
}
// 결과
12345의 처음부터 3번째 문자는 123입니다.
12345의 세번째 문자부터 마지막 문자는 345입니다.

:으로 나누어진 12번째 문자는 AB입니다.
:으로 나누어진 22번째 문자는 CD입니다.
:으로 나누어진 32번째 문자는 EF입니다.

 

클래스형 변수

 

Computer com = new Computer(); // Computer 객체변수 com

 

com과 같이 객체를 가리키는 변수를 클래스형 변수 또는 객체 변수라고 한다.

Computer com1 = new Computer();

Computer = com2

com2 = com1

클래스형 변수에 대입하는 프로그램

 

클래스형 변수에 객체를 가리키는 클래스형의 변수를 대입해, 각각의 객체 데이터의 확인을 실시한다.

클래스 변수에 다른 클래스 변수를 대입하였을 때의 반응을 본다.

public class Computer1 {
    private String os;
    private int memory;

    // 생성자

    public Computer1() {
        this.os = "";
        this.memory = 0;

        System.out.println("PC가 만들어졌습니다.");
    }
    public void setComputer(String os, int memory) {
        this.os = os;
        this.memory = memory;
        System.out.println("OS는 " + os + "이고 메모리는 " + memory + "GB로 설정되었습니다.");
    }
    public void show(){
        System.out.println("PC의 OS는 " + os + "입니다.");
        System.out.println("메모리는 " + memory + "GB입니다.");

    }
}
public class AssignValueOfClassType1 {
    public static void main(String[] args) {
        //클래스형 변수 com1을 선언하여 Computer1 객체를 생성함
        System.out.println("com1을 선언합니다.");
        Computer1  com1 = new Computer1();

        //OS와 메모리 정보 설정
        com1.setComputer("Window 11" , 32);

        //클래스형 변수 com2 선언
        System.out.println("com2를 선언했습니다.");
        Computer1 com2;

        //com2에 com1을 대입
        System.out.println("com2에 com1을 할당했습니다.");
        com2 = com1;

        System.out.println("\n=[정보 변경 전 PC 정보 표시] =========");
        System.out.print("com1은 "); // com1 정보 표시
        com1.show();
        System.out.println();
        System.out.print("com2은 "); //com2 정보 표시
        com2.show();

        System.out.println("==========================\n");
    }
}

//결과

com1을 선언합니다.
PC가 만들어졌습니다.
OS는 Window 11이고 메모리는 32GB로 설정되었습니다.
com2를 선언했습니다.
com2에 com1을 할당했습니다.

=[정보 변경 전 PC 정보 표시] =========
com1은 PC의 OS는 Window 11입니다.
메모리는 32GB입니다.

com2은 PC의 OS는 Window 11입니다.
메모리는 32GB입니다.
==========================

클래스형 변수를 메소드로 이용하기

 

클래스형 변수를 메소드의 리턴값으로서 이용하는 프로그램

 

반환값에 클래스형을 정의하고 있는 메소드를 호출하고 반환값의 정보를 표시한다.

 

ublic class Computer3 {
    private String os;
    private int memory;

    //생성자
    public Computer3(){
        this.os = "";
    }

    //생성자 (인수 있음)
    public Computer3(String os, int memory) {
        this.os = os;
        this.memory = memory;
    }
    /*
    * 접근자 메소드
     */
    public String getOs() {
        return os;
    }
    public int getMemory() {
    return memory;
    }
    public void setOs(String os){
        this.os = os;
    }
    public void setMemory(int memory) {
        this.memory = memory;
    }
    public void show() {
        System.out.println("PC OS는 "  + this.os + "입니다.");
        System.out.println("메모리는 " + this.memory + "GB입니다.");
    }
}

 

public class ObjectAsReturnValue {
    /*
    * 인수의 OS명으로부터 알맞은 메모리를 판정하여 그 정보를 바탕으로 PC객체를 생성하고 반환
     */
    public static Computer3 makeComputer(String os) {
        //알맞은 메모리값 저장 변수
        int reasonableMemory;

        //OS명에서 알맞은 메모리 크기 결정
        if (os.equals("Windows11")) {
            // OS - Windows 11
            reasonableMemory = 32;
        } else if (os.equals("Windows10")){
            // OS - Windows 10
            reasonableMemory = 16;
        } else {
            // 기타
            reasonableMemory = 8;
        }

        // 인수가 있는 생성자로 객체를 생성
        Computer3 com = new Computer3(os, reasonableMemory);

        //리턴값으로 com설정
        return com;
    }
    public static void main(String[] args) {
        //메소드의 인수를 설정할 변수를 선언
        String os1 = "Windows11";
        String os2 = "Windows10";

        //OS명을 인수로 설정하여 메소드를 호출함
        Computer3 com1 = makeComputer(os1);
        Computer3 com2 = makeComputer(os2);

        //각 메소드의 리턴값에서 객체정보 표시
        System.out.print("제작한 첫번째");
        com1.show();
        System.out.println("=======================");
        System.out.print("제작한 두번째");
        com2.show();

    }
}

//결과
제작한 첫번째PC OS는 Windows11입니다.
메모리는 32GB입니다.
=======================
제작한 두번째PC OS는 Windows10입니다.
메모리는 16GB입니다.

값 전달 및 참조 전달 정보

 

 

참조 전달의 특징 : 객체 위치 정보가 인수와 임시 인수 사이에 복사된다.

값 전달 특징 : 값이 인수와 임시 인수 사이에 복사된다. 인수에 이용한 변수에 영향이 없다.

 

클래스형 배열을 이용한 프로그램

public class ClassArray {
    public static void main(String[] args){
        //클래스형 배열 선언
        Computer1[] coms = new Computer1[3];

        // 반복을 이용하여 배열 요소에 객체를 전달함
        for(int i =0; i < coms.length;i++){
            coms[i] = new Computer1();
        }

        //각 배열 요소의 객체에서 메소드 호출
        coms[0].setComputer("Windows11", 32);
        coms[1].setComputer("Windows10", 16);
        coms[2].setComputer("WindowsXP", 8);


        //반복을 이용하여 각 겍체 정보를 표시
        for(int i=0;i<coms.length;i++) {
            coms[i].show();
        }
    }
}
//결과
PC가 만들어졌습니다.
PC가 만들어졌습니다.
PC가 만들어졌습니다.
OS는 Windows11이고 메모리는 32GB로 설정되었습니다.
OS는 Windows10이고 메모리는 16GB로 설정되었습니다.
OS는 WindowsXP이고 메모리는 8GB로 설정되었습니다.
PC의 OS는 Windows11입니다.
메모리는 32GB입니다.
PC의 OS는 Windows10입니다.
메모리는 16GB입니다.
PC의 OS는 WindowsXP입니다.
메모리는 8GB입니다.

종료 코드 0(으)로 완료된 프로세스

 

ArrayList에 대해

 

한 마디로 표현하면 배열이다.

가변적 배열이라고도 한다.

Java 프로그램은 고정 길이 배열보다 가변 길이 배열인 ArrayList를 더 많이 사용한다.

 

형식 : ArrayList 클래스 (java.util.ArrayList)

 

ArrayList로 저장된 데이터 추출하기

import java.util.ArrayList;

public class UseArrayList3 {

    public static void main(String[] args){
        // 문자열 처리하는 ArrayList배열
        ArrayList<String> strList = new ArrayList<String>();

        //1번째 문자열 추가 및 표시
        strList.add("Good morning");
        System.out.println("1번째 저장 데이터는 " + strList.get(0) + "입니다.");

        //2번째 문자열 추가 및 표시
        strList.add("Hello");
        System.out.println("2번째 저장 데이터는 " + strList.get(1) + "입니다.");

        //3번째 문자열 추가 및 표시
        strList.add("Bye");
        System.out.println("3번째 저장 데이터는 " + strList.get(2) + "입니다.");

        //ArrayList배열의 저장 데이터수 표시
        System.out.println("저장 데이터 수는 " + strList.size() + "입니다.");
    }
}


//결과

1번째 저장 데이터는 Good morning입니다.
2번째 저장 데이터는 Hello입니다.
3번째 저장 데이터는 Bye입니다.
저장 데이터 수는 3입니다.

 

반복문을 이용한 ArrayList

 

import java.util.ArrayList;

public class UseArrayList4 {
    public static void main(String[] args){
        //문자열을 처리하는 ArrayList 배열
        ArrayList<String> strList  = new ArrayList<String>();

        // 문자열 추가
        strList.add("Good morning");
        strList.add("Hello");
        strList.add("Bye");

        // 반복처리를 이용하여 전 건 표시
        for(int i = 0; i <strList.size(); i++ ) {
            System.out.println((i+1) +" 2번째 저장 데이터는 " + strList.get(i) + "입니다.");
        }
    }
}
//결과
1 2번째 저장 데이터는 Good morning입니다.
2 2번째 저장 데이터는 Hello입니다.
3 2번째 저장 데이터는 Bye입니다.

 

ArrayList 배열에 저장된 데이터를 삭제

import java.util.ArrayList;

public class UseArrayList6 {
    public static void main(String[] args) {
        ArrayList<String> strList = new ArrayList<String>();

        //문자열 추가
        strList.add("Good morning");
        strList.add("Hello");
        strList.add("Bye");

        System.out.println("* 변경 전 데이터 목록");
        for (int i = 0; i<strList.size(); i++){
            System.out.println((i+1) + "번째 추가 데이터는 " + strList.get(i) + "입니다.");
        }
    }
}
//결과
* 변경 전 데이터 목록
1번째 추가 데이터는 Good morning입니다.
2번째 추가 데이터는 Hello입니다.
3번째 추가 데이터는 Bye입니다.

 

ArrrayList 저장 데이터 검색

import java.util.ArrayList;

public class UseArrayList7 {
    public static void main(String[] args) {
        //검색 결과의 인덱스 저장 변수
        int index;

        // 문자열을 처리하는 ArrayList배열
        ArrayList<String> strList = new ArrayList<String> ();

        // 문자열 추가
        strList.add("Good morning");
        strList.add("Hello");
        strList.add("Bye");

        System.out.println("* 변경 전 데이터 목록");
        for(int i = 0; i <strList.size(); i++) {
            System.out.println((i+1) + "번째 저장 데이터는 " + strList.get(i) + "입니다.");
        }
        // ArrayList 배열 저장 데이터에서 검색
        System.out.println("==========================");
        index = strList.indexOf("Hello");

        // 검색 결과 확인
        if(index != -1){
            System.out.println("Hello는 요소 번호 " + index + "에 저장됩니다.");
        }else{
            System.out.println("Hello을 찾을 수 없습니다.");
        }
        // 3번째 데이터 변경
        strList.set(2, "Good Bye!");
        // 2번째 데이터 삭제
        strList.remove(1);

        System.out.println("\n * 번경 후 데이터 목록");
        for(int i =0; i <strList.size(); i++){
            System.out.println((i+1)+"번째 저장 데이터는 " + strList.get(i) + "입니다.");
        }

        // ArrayList 배열 저장 데이터에서 검색
        System.out.println("============================");
        index = strList.indexOf("Hello");

        //검색 결과 확인
        if (index != -1) {
            System.out.println("Hello는 요소 번호 " + index + "에 저장됩니다.");
        }else{
            System.out.println("Hello를 찾을 수 없습니다.");
        }
    }
}

//결과

* 변경 전 데이터 목록
1번째 저장 데이터는 Good morning입니다.
2번째 저장 데이터는 Hello입니다.
3번째 저장 데이터는 Bye입니다.
==========================
Hello는 요소 번호 1에 저장됩니다.

 * 번경 후 데이터 목록
1번째 저장 데이터는 Good morning입니다.
2번째 저장 데이터는 Good Bye!입니다.
============================
Hello를 찾을 수 없습니다.

ArrayList 배열 완전히 삭제 후 비어 있는지 확인하는 프로그램

 

import java.util.ArrayList;

public class UseArrayList8 {
    public static void main(String[] args) {
        ArrayList<String> strList = new ArrayList<String>();

        //문자열 추가
        strList.add("Good morning");
        strList.add("Hello");
        strList.add("Bye");

        //반복 처리를 이용하여 전 건 표시
        System.out.println(" * 지우기 전의 데이터 일람 ");
        for(int i = 0; i <strList.size(); i++) {
            System.out.println((i+1) + "번째 저장 데이터는 " + strList.get(i) + "입니다.");
        }
        //ArrayList배열 저장된 데이터 삭제
        strList.clear();

        System.out.println("\n * 지우기 후 데이터 목록 ");
        //ArrayList 배열 저장 데이터 수 확인
        if(strList.isEmpty()){
            System.out.println("데이터 1개 없음");
        }else{
            for (int i = 0;i<strList.size(); i++){
                System.out.println((i+1) + "번째 저장 데이터는 " + strList.get(i) + "입니다.");
            }
        }
    }

//결과
 * 지우기 전의 데이터 일람 
1번째 저장 데이터는 Good morning입니다.
2번째 저장 데이터는 Hello입니다.
3번째 저장 데이터는 Bye입니다.

 * 지우기 후 데이터 목록 
데이터 1개 없음

'STUDY > Java' 카테고리의 다른 글

기본 문법 복습 (1)  (0) 2022.04.07
제네릭  (0) 2022.04.06
예외 처리  (0) 2022.03.29
Package & import  (0) 2022.03.28
생성자  (0) 2022.03.23
Comments