처음 만나는 클라우드 보안

[JAVA] 클래스란? 변수 타입의 이해 (with 원시형 & 참조형) 본문

JAVA

[JAVA] 클래스란? 변수 타입의 이해 (with 원시형 & 참조형)

영민하게 2022. 6. 26. 17:58
반응형

Java클래스의 정의 => 서로 연관된 변수 및 메서드를 그루핑한 개념

메소드(Method)란? 서로 연관된 코드를 그룹핑해서 이름을 붙인 정리정돈 상자

클래스 vs 객체

클레스(Class) 객체(Object)
설계도(속성 + 행위) 실제 생성 결과물
붕어빵 틀 붕어빵

 

 

프로그래밍 구성요소 5가지

변수와 값, 연산자, 함수, 흐름 제어, 자료구조

 

변수의 타입

- 원시 타입 (Primitive Type, 기본 타입)

 : 정수, 실수, 문자 등 고정된 크기로 데이터에 저장되는 값을 말한다. ex) int, double, char, bool

 

- 참조 타입 (Reference Type)

 : 원시 타입을 제외한 클래스, 문자열을 말한다. 객체는 메모리의 힙(Heap) 영역에 저장되며, 객체의 주소는 메모리의 스택(Stack) 영역에 저장되어 참조 변수에 저장된 객체의 주소를 불러와 사용된다.

 

  • EXAMPLE
스택(Stack) 힙(Heap)
int height = 17
char a = 'b'
String name = 1010번지
1010번지 : "우유"

  생성자(Constructor)

참조 타입과 같이 객체를 처음 생성할 때 변수에 값을 채워주는 특별한 방법을 말한다.

추가) Contructor를 사용하면 인스턴스를 생성할 수 있다.

Random random = new Random();

연산자

산술 연산(+,-,*,/), 비교 연산(==, >) 논리 연산(&&, ||), 비트 연산(&, |), Shift(>>,<<), 대입(=), 증감(++,--), 조건(;?)

꼭 알아두어야 할 연산자들

- 모듈 연산 %: 나눈 나머지 값을 연산  ex) 3의 배수 x%3==0

- 대입 연산자:  영민 나이 = 영민나이 +1 => 영민나이 += 1

- 증감 연산자: ++, -- (1만 증가, 감소)

- 비트 연산자 &: 2진법 단위에서 비교한다. ex) 5&6 = 101(2) & 100(2) = 100(2)  둘 다 1이면 1

- Shift 연산자: 5 >> 2 펌웨어 같이 Low level에서 자주 사용됨

참고) 조건 연산자는 잘 쓰이지 않음 ex) isMember == true? 2 : 10

JAVA코드의 작성 규칙

개발자 간의 소통을 위한 통상적인 약속

: 띄어쓰기는 대문자로 구분하며 클래스(Class) 선언은 대문자로 시작하는 명사로, 변수명 선언은 주로 소문자로 시작하는 동사로 짓는다.

  • EXAMPLE

클래스: GuessNumber / 명사
변수명:guessNumber / 동사

 

  • 실습 코드
import java.util.Random;
import java.util.Scanner;

public class GuessNumber {
    public static void main(String args[]){
        System.out.println("Number Check!: ");
        String name = "AAA"; // String name new String("Seo")
        System.out.println(name);
        Scanner scanner = new Scanner(System.in); //heap영역에 Scanner 객체(인스턴스)를 할당한다.
        Random random = new Random();

        int targetNumber = random.nextInt(bound:100);  // 100이하의 양수로 한정
        //System.out.println(targetNumber);
        int playerNumber = scanner.nextInt();

        //숫자를 비교한다.
        if(targetNumber < playerNumber){
            System.out.println("smaller then that..");
        }
        else if(targetNumber > playerNumber){
            System.out.println("Bigger then that..");
        }
        else{
            System.out.println("Coorect!");
        }
    }
}

 

 

상속 (Inheritance)

하위 클래스(자식)는 상위 클래스(부모)의 변수와 메서드를 그대로 물려받는다.

 

 

반응형
Comments