Java 1학년

[Java 1학년] 객체 지향

양상추상츄 2021. 10. 5. 18:59

빈객체 생성하기

 

Main.java

public class Main {
    public static void main(String[] args) {

    }
}

 

MyClass.java

class MyClass {
    public static void main(String[] args) { // 아무것도 하지 않는 빈클래스
        MyClass myClass = new MyClass(); // 인스턴스 작성
    }
}


자기 이름을 말하고 인사하는 객체 만들기

 

public class Main {
    public static void main(String[] args) {
        MyClass myClass = new MyClass();

        myClass.hello();
    }
}

 

public class MyClass {

    String myName = "새로운 클래스"; // 필드 생성

    void hello {// hello 메소드 생성

        System.out.print(myName + "입니다. 안녕하세요");

    }

}


자기 이름을 말하고 인사하는 객체 만들기 수정

 

public class Main {
    public static void main(String[] args) {
        MyClass myClass = new MyClass();

        MyClass raichu = new MyClass();

        MyClass picachu = new MyClass();

        raichu.myName = "라이츄"

        picachu.myName = "피카츄"

 

        myClass.hello();

        raichu.hello();

        picachu.hello();
    }
}

 

public class MyClass {

    String myName = "새로운 클래스"; // 필드 생성

    void hello {// hello 메소드 생성

        System.out.println(myName + "입니다. 안녕하세요");

    }

}

 

새로운 클래스입니다. 안녕하세요

라이츄 입니다. 안녕하세요

피카츄 입니다. 안녕하세요


계산 문제를 1개만 만드는 클래스를 만들기

 

Main.java

 

public class Main {
    public static void main(String[] args) {
        CalcQuiz q = new CalcQuiz();

        System.out.println(q.getQuestion());
        System.out.print(q.getAnswer());
    }
}

 

calcQuiz.java

 

import java.util.Random;
class CalcQuiz { //계산 문제를 1개 만드는 클래스
    String question; // 문제를 저장할 필드
    String answer; // 답을 저장할 필드
    
    CalcQuiz() {
        createQuestion();
    }
    
    void createQuestion(){
        Random rnd = new Random();
        int a = rnd.nextInt(100);
        int b = rnd.nextInt(100);
        question = a + "x" + b + "=?";
        answer = Integer.toString(a * b);
    }
    
    String getQuestion() {
        return question; //문제를 알려주는 메소드
    }
    
    String getAnswer() {
        return answer; //답을 알려주는 메소드
    }
}


계산 문제를 100개만 만드는 클래스를 만들기

 

Main.java

public class Main {
    public static void main(String[] args) {
        int quizNum = 5; //문제수
        CalcQuiz[] quiz = new CalcQuiz[quizNum]; //크기가 quizNum인 배열 생성
        
        for(int i = 0; i < quizNum; i++) {
            quiz[i] = new CalcQuiz(); //인스턴스(객체)생성
        }
        
        for(int i=0; i<quizNum; i++) { // 모든문제 표시
            System.out.println("문제" + i + ":" + quiz[i].getQuestion());
        }
        
        System.out.println("---------------------------------------");
        
        for (int i=0; i<quizNum; i++) { // 모든답 표시
            System.out.println("정답" + i + ":" + quiz[i].getAnswer());
        }
    }
}

 

 

calcQuiz.java

import java.util.Random;
class CalcQuiz { //계산 문제를 1개 만드는 클래스
    String question; // 문제를 저장할 필드
    String answer; // 답을 저장할 필드
    
    CalcQuiz() {
        createQuestion();
    }
    
    void createQuestion(){
        Random rnd = new Random();
        int a = rnd.nextInt(100);
        int b = rnd.nextInt(100);
        question = a + "x" + b + "=?";
        answer = Integer.toString(a * b);
    }
    
    String getQuestion() {
        return question; //문제를 알려주는 메소드
    }
    
    String getAnswer() {
        return answer; //답을 알려주는 메소드
    }
}


필드와 로컬변수를 쉽게 구별하는 this

 

calcQuiz.java

import java.util.Random;
class CalcQuiz { //계산 문제를 1개 만드는 클래스
    String question; // 문제를 저장할 필드
    String answer; // 답을 저장할 필드
    
    CalcQuiz() {
        createQuestion();
    }
    
    void createQuestion(){
        Random rnd = new Random();
        int a = rnd.nextInt(100);
        int b = rnd.nextInt(100);
        this.question = a + "x" + b + "=?";
        this.answer = Integer.toString(a * b);
    }
    
    String getQuestion() {
        return this.question; //문제를 알려주는 메소드
    }
    
    String getAnswer() {
        return this.answer; //답을 알려주는 메소드
    }
}


https://paiza.io/

 

Online editor and compiler

Paiza.IO is online editor and compiler. Java, Ruby, Python, PHP, Perl, Swift, JavaScript... You can use for learning programming, scraping web sites, or writing batch

paiza.io

온라인 개발환경 paiza를 통해서 실습함