ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 100제 Part.3 / 1 ~ 4
    개발자 수업/인터넷 강의 2021. 9. 17. 12:56

    1. 클래스란 무엇이고 어떤 역할을 하는지에 대해서 설명

    (1) 클래스란 무엇인가?

     클래스란 객체(또는 인스턴스)를 생성하는 하나의 공장(=틀, 프레임, 템플릿)이다

     시골 허허벌판에 농기계를 만들어내는 공장(클래스)이 들어섰고, 농부들이 주문을 넣으면 농기계(객체)가 만들어져 나옴

     

    (2) 클래스 공장을 통해서 객체를 어떻게 만들어내는지?

     사람들이 공장에 주문을 넣는 과정

     예를 들면, 어떤 농부가 경작용 트랙터를 주문한다고 하면 가격, 색상, 연식 등을 고민함

     뿐만 아니라, 트랙터의 기능이나 성능 등 동작들에 대해서도 많은 고민함

     고민하는 걸 2개 정도로 압축하면 크게 봤을 때 "특징"과 "동작"이 됨

     클래스는 이러한 만들고자 하는 객체의 "특징"과 "동작"에 많은 시간을 들이고 집중하면서 설계를 하게 됨

     

    (3) 위 사항들을 어려운 말로 정의하면

     객체의 특징 : 속성(attribute)

     객체의 동작 : 메서드(method) -> 함수와 거의 동일

     

     

    2. FarmMachine의 속성과 동작들을 가지는 클래스를 코드로 구현하고 객체를 생성하여 동작

    (1) 클래스는 왜 나왔을까?

     클래스 없이도 객체의 특징(속성)들은 변수로 정의하고, 동작은 함수로 정의할 수 있을 것이다

     그러나 프로그램의 규모가 커지고 여러 사람이 협업을 하는 과정에서 좀 더 체계적이고 분업화된 시스템으로 개발하고 확장해나갈 필요성이 있다

     그런 일련의 과정에서 OOP (객체 지향 프로그래밍)가 만들어지고 발전해왔다

     거의 모든 프로그래밍 언어에서 OOP 문법을 지원하고 있고 하나의 언어로 OOP 문법을 공부하면 다른 언어에서도 거의 동일하다

     즉, 자바 언어로 OOP를 배운 사람은 python, php를 공부할 때 거의 거저먹기 수준이 된다

     다만, 프로그래밍 언어마다 OOP를 구현하는 방법은 제각각 다르기 때문에 이런 부분을 공부하는 시간은 필요하다

    class FarmMachine{
    
    	// 속성
        int price; // 가격
        int year; // 연식
        String color; // 색상
        
        // 동작
        void move(){
        	System.out.println("Farm-machine is moving.");
        }
        
        void dig(){
        	System.out.println("Farm-machine is digging.");
        }
        
        void grind(){
        	System.out.println("Farm-machint is grinding.");
        }
    }
    
    public class Java100_oop_Exam002{
    	public static void main(String[] args){
        
        	// 객체 생성
            FarmMachine fm = new FarmMachine();
        	System.out.println(fm); // 주소값
            
            // 생성된 객체에 속성 값 입력하기
            fm.price = 1000000;
            fm.year = 2020;
            fm.color = "red";
            
            // 속성 값 출력
            System.out.println(fm.price);
            System.out.println(fm.year);
            System.out.println(fm.color);
            
            // 동작 수행하기
            fm.move();
            fm.dig();
            fm.grind();
        }
    }

     

     

    3. 1000000원을 가진 변수를 천 단위로 콤마를 찍어서 출력

            위 코드 //속성 값  출력에 작성하면 됨

            String fm_price=String.format("%,d",1000000);
            System.out.println(fm._price);

     

            System.out.println(String.format("%,d",fm.price);

     

     

    4. 문자열을 숫자로 바꿔서 연산 (인자 값으로 진수를 지정)

    public class Java100_oop_ParseInt{
    	public static void main(String[] args){
        
        	// 숫자끼리의 연산
            int a = 1;
            int b = 2;
            int c = a+b;
            System.out.println("a+b="+c);	// 3
            
            // 문자열끼리의 연산
            String a1 = "1";
            String b1 = "2";
            String c1 = a1 + b1;
            System.out.println("a1+b1="+c1);	// 12
            
            // 문자열을 숫자로 변환 후 연산
            int a2 = Integer.parseInt(a1);
            int b2 = Integer.parseInt(b1);
            System.out.println(a2+b2);		// 3
            
            // 진수 지정				// 여기에는 10진수로 출력됨
            System.out.println(Integer.parseInt("2022")		// 2022
            System.out.println(Integer.parseInt("1",2)		// 1
            System.out.println(Integer.parseInt("1001",2)		// 9
            System.out.println(Integer.parseInt("1004",8)		// 516
            System.out.println(Integer.parseInt("A",16)		// 10
        }
    }

    parseInt() -> Integer 클래스의 stataic으로 지정 -> 객체의 생성 없이 바로 "클래스명.parseInt()"로 사용 가능

    두 번째 인자 값으로 진수를 지정 -> 해당 진수에 맞는 값이 됨 -> Integer.parseInt("1000",2); -> 1000이 2진수

     

     

     

     

    '개발자 수업 > 인터넷 강의' 카테고리의 다른 글

    자바 100제 Part.3 / 14 ~ 23  (0) 2021.09.18
    자바 100제 Part.3 / 5 ~ 13  (0) 2021.09.17
    자바 100제 Part.2 / 13 ~ 24  (0) 2021.09.15
    자바 100제 Part.2 / 6 ~ 12  (0) 2021.09.15
    자바 100제 Part.2 / 1 ~ 5  (0) 2021.09.15

    댓글