1. 클래스

  • 클래스는 객체를 정의한다
  • 클래스는 객체를 생성하는데 사용한다
  • 클래스는 객체를 만들기 위한 설계도라고 할 수 있다

 1) 클래스 구성

  • 필드(field) : 클래스의 속성을 나타내는 변수이다
  • 메서드(method) : 클래스의 기능을 나타내는 함수이다
  • 생성자(constructor) : 클래스의 객체를 생성하는 역활을 한다
  • 이너클래스(inner class) : 클래스 내부의 클래스를 의미한다
  • 위의 4가지 요소로 구성된다
  • 필드, 메서드, 이너클래스를 통틀어 멤버(member)라고 한다
더보기

■ 자동차를 예로 필드의 속성과 메서드의 기능을 알아보자

속성 { 모델, 바퀴의 개수, 도어의 개수, 색상 등... }     ->      class Car {
 //변수 선언을 통해 나타낸다                                                   private String model ;
                                                                                                 private int wheels;
                                                                                                 private int doors;
                                                                                                 private String color;

기능 { 시동, 가속, 정지, 와이퍼 작동 등...}                 ->          void power( ) {....};
//함수를 통해 나타낸다                                                            void accelerate( ) {....};
                                                                                                void stop( ) {....};
                                                                                                void wipers( ) {....};
                                                                                           }   

public class Example {                //Example class 선언
	int a = 10;                       //필드
	if a(){ };                        //메서드 
    void printX() {...}               //메서드
	Example exe = new Exanple()       //생성자
	class Example2 {...}              //이너 클래스
}

 2) 클래스 추가 정의

  • 클래스 == 데이터 + 함수 의 결합으로 사용할 수 있다
    - 클래스 : 데이터와 함수의 결합 (구조체 + 함수)
    - 데이터는 변수와 같다
    - 함수는 메서드와 같으며, 명령문의 집합체이다
    - 함수의 작업은 데이터를 재료로 계산을 한다
    - 데이터와 함수는 상호 관련성이 있으므로 결합하여 사용하는 것이 용이하다

  • 데이터 저장의 변화는 다음과 같다
    - 변    수 : 하나의 데이터를 저장할 수 있는 공간
    - 배    열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
    - 구조체 : 서로 다른 종류의 데이터라도 관련성이 있다면 하나로 저장할 수 있는 공간
    - 클래스 : 데이터와 함수의 결합 (구조체 + 함수)

 

  • 클래스는 사용자 정의 타입이다
    - 원하는 타입을 사용자가 직접 만들 수 있다

    ex) 사용자 정의 변수를 통하여 코그의 단순화한 경우

 

2. 객체

  • 실제로 존재하는 사물이나 개념, 논리 등을 말한다
  • 객체가 가지는 기능과 속성에 따라 사용되는 용도가 다르다
  • 실제 존재물 HW을 컴퓨터가 실행할 수 있는 SW 로 만들는 과정에서 사용된다
  • 모든 인스턴스를 대표하는 일반적 용어이다
  • 클래스를 객체로 생성하기 위해서 메모리로 할당하는 과정을 인스턴스화 한다고 말한다

 1) 구성요소

  • 객체 = 속성(변수) + 기능(메서드) 로 구성된다
  • 객체를 사용하기 위해서는 속성과 기능을 부여해 줘야 한다
  • HW를 분석하여 SW화 하는 방법이다

 2) 객체의 생성

  1. 클래스명 ; //클래스를 선언한다
  2. 클래스명 변수명 ; //클래스의 객체를 참조하기 위한 변수(참조변수)를 선언한다
  3. 변수명 = new 클래스명( ) ; //클래스 인스턴스를 생성하여 참조변수에 주소를 저장한다. 메모리에 참조변수 영역을 확보한 객체가 생성된다
  4. 2와 3은 다음과 같이 줄여서 사용할 수 있다 -> Audio audio = new Audio( );

    ex) 1 class Audio;                             class Audio;  

          2 Audio audio;                 ->        Audio audio = new Audio( );

          3 audio = new Audio( );

 

 3) 객체의 사용

  • 클래스 작성 -> 객체 생성 -> 객체 사용 의 순서로 작성한다
    - 클래스는 객체를 만들기 위한 설계도 역활이며, 객체는 객체를 사용하기 위하여 생성된다.
  • 객체의 사용은 변수와 메서드를 사용한다는 의미이다
  • 객체 사용 시에는 참조변수를 필히 호출하여 사용한다
    - 참조변수.멤버변수 = 값 ; //참조변수 객체의 멤버변수에 값을 저장하는 경우에 사용한다
      ex) audio.volume = 50 ; //오디오 객체의 볼륨변수의 값을 50으로 저장한다 

    - 참조변수.메서드변수( ) ; -> 참조변수 객체의 메서드변수를 호출하여 실행하는 경우에 사용한다
      ex) audio.volumeup( ) ; //오디오 객체의 볼륨변수에 있는 기능을 실행시킨다 (volume++)
  • 변수가 생성되면 기본값으로 초기화된다

ex1) 

 

ex2)

ex3)

class Audio {
   public static void main(String arg[]){
       Audio audio = new Audio( );
       audio.model;//변수 사용
       audio.power = power; //전원 true
       audio.volume = 50; //현재 볼륨 입력
       audio.volumeup( ); //메서드 사용, 볼륨 +1 상승 = 50+1 = 51
       System.out.println("현재의 볼륨은" + audio.volume + "입니다");
	}
}
class audio {
	String model;
    Int volume;
    boolean power = power;
    
    audio.model( ) {“white”;}
    audio.power( ) {power = !power;}
    audio.volumeup( ) {volume++;}
    audio.volumedown( ) {volume--;}
}

result
"현재의 볼륨은 51입니다

 

 

import java.util.Scanner;  //Scanner 유틸 호출

//간이계산기 프로그램 
public class Calculator {
    public static void main(String[] args) { //maun 메서드 선언
        Scanner scan = new Scanner(System.in); //Scanner 객체 생성 : 외부입력

        System.out.println("첫 번째 숫자를 입력하세요."); //콘솔출력
        String no1 = scan.nextLine(); //첫 번째 숫자 입력
        
        System.out.println("사칙연산자를 입력하세요.");
        String op = scan.nextLine(); //사칙연산자 입력

        System.out.println("두 번째 숫자를 입력하세요.");
        String no2 = scan.nextLine(); //두 번째 숫자 입력

        int num1 = Integer.parseInt(no1); //입력받은 첫 번째 문자를 숫자형으로 변환
        int num2 = Integer.parseInt(no2); //입력받은 두 번째 문자를 숫자형으로 변환
        int result;

        if(op.equals("+")) {              //덧셈 연산
            result = num1 + num2;
        }
        else if(op.equals("-")) {         //뺄셈 연산
            result = num1 - num2;
        }
        else if(op.equals("/")) {         //나누기 연산
            result = num1 / num2;
        }
        else{
            result = num1 * num2;         //곱하기 연산
        }

        System.out.println(no1 + " " + op + " " + no2 + " = " + result); // 결과값 출력
    }
}

 

3. 소스파일과 클래스의 관계

  • 하나의 소스 파일에는 하나의 public class만 존재해야 한다
  • 또한, 하나의 소스 파일에는 하나의 클래스만 존재하는 것을 권장한다
  • 소스파일의 이름은 main 메서드가 있는 클래스의 이름과 일치해야 한다
  • 하나의 소스 파일에 여러 개의 클래스가 존재할 경우 소스파일의 이름은 아래와 같이 사용한다
소스파일 클래스 내용
Hello1.java public class Hello1 { }
           class Hello2 { }
public class가 있는 경우
소스파일의 이름은 반드시 public class 이름과 일치해야 한다
class Hello1 { }
class Hello2 { }
public class가 없는 경우
소스파일의 이름은 Hello1, Hello2 어떤 것을 사용해도 상관없다
  • 아래와 같은 경우는 오류가 발생한다
소스파일 클래스 내용
Hello1.java public class Hello1 { }
public class Hello2 { }
하나의 소스파일에 두 개 이상의 public class가 존재할 수 없다
각 클래스를 별도의 소스파일로 나눠서 저장하거나 class 중 한 개의 public를 삭제해야 한다
Hello2.java public class Hello1 { }
          class Hello2 { }
소스파일의 이름과 public class의 이름이 일치하지 않는다
소스파일의 이름을 Hello1.java로 변경해야 한다
hello1.java public class Hello1 { }
          class Hello2 { }
소스파일의 이름과 public class의 이름이 일치하지 않는다
소스파일의 이름은 대소문자도 일치해야 한다
소스파일의 이름을 대문자 H로 변경해야 한다

 

 

 참조 링크

해시넷 객체 : http://wiki.hash.kr/index.php/%EA%B0%9D%EC%B2%B4

 

객체 - 해시넷

객체(客體) 또는 오브젝트(object)란 객체 지향 프로그래밍(OOP)에서 클래스(class)가 실제로 구현된 인스턴스(instance)를 말한다. 즉, 객체란 클래스를 인스턴스화한 것이다. 절차적 프로그래밍과 달

wiki.hash.kr

위키피아 객체 : https://en.wikipedia.org/wiki/Object_(computer_science) 

 

Object (computer science) - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Arbitrarily defined dataset with specified properties used in some programming paradigms In computer science, an object can be a variable, a data structure, a function, or a method. As

en.wikipedia.org

▶  Classes & Objects | Java | Tutorial 26 : https://www.youtube.com/watch?v=Mm06BuD3PlY

 

 

+ Recent posts