20230214 [Java] 클래스 + 변수

Daisy🌷·2023년 2월 14일
0

1. 클래스

package org.opentutorials.javatutorials.object;
class Calculator{
    int left, right;
    public void setOprands(int left, int right){
        this.left = left;
        this.right = right;
    }
    public void sum(){
        System.out.println(this.left+this.right);
    }  
    public void avg(){
        System.out.println((this.left+this.right)/2);
    }
}
public class CalculatorDemo4 {  
    public static void main(String[] args) {
        Calculator c1 = new Calculator();
        c1.setOprands(10, 20);
        c1.sum();       
        c1.avg();      
        Calculator c2 = new Calculator();
        c2.setOprands(20, 40);
        c2.sum();       
        c2.avg();
    }
}
  • 위의 코드에서 변수 left와 right, 메소드 sum과 avg는 연관되어 있는 로직이다. 이 로직들의 연관성은 계산을 하기 위한 것이다. 그래서 이 로직들을 대표하는 이름을 계산기라는 의미의 Calculator라고 정하고 이것들을 Calculator라는 이름으로 그룹핑하려고 한다. 이럴 때 사용하는 키워드가 class이다. class 키워드 뒤에는 클래스 이름이 오고 그 뒤의 중괄호는 클래스의 시작과 끝 경계를 의미한다. 이렇게 해서 더하기(sum)과 평균(avg)를 계산할 수 있는 클래스가 만들어졌다. 클래스는 아래와 같이 정의할 수 있다.
    " 클래스는 연관되어 있는 변수와 메소드의 집합이다."

2. 인스턴스

  • 특정 타입의 객체가 생성되면 그 객체를 그 타입의 인스턴스라고 부른다.
Scanner x = new Scanner();
- x라는 이름을 가진 무언가는 Scanner라는 타입의 객체이다. 
- x는 Scanner라는 타입의 인스턴스

1. 매개 변수 (parameters)

  • 선언 위치 : 메서드 영역
  • 메서드 호출 시 '전달하는 값'을 가지고 있는 변수이다. 지역 변수처럼 선언된 곳부터 수행이 끝날 때까지 유효하다.
    -> 메서드에 넘겨주는 변수
  • 생명주기 : 메서드가 호출될 때 생명이 시작되고, 메서드가 끝나면 소멸된다.

2. 지역 변수

  • 선언 위치 : 메서드 영역
  • 메서드 내에서 선언되고 메서드 수행이 끝나면 소멸되는 변수이다. 초깃값을 지정한 후 사용할 수 있다.
  • 조건문, 반복문 블록 내에 선언한 지역 변수가 있는 경우 수행이 끝나면 소멸되므로 계속 사용할 경우 블록 밖에서 선언이 필요하다.
  • 지역 변수 초기화 : 사용하기 전에 반드시 초기화해야 한다.

3. 멤버 변수

  • 메서드 밖에서 선언된 변수를 말한다. 메서드 안에 선언된 변수는 지역(local) 변수라고 한다.
  • 클래스에 존재하는 변수로서 함수(메서드)에 존재하는 지역 변수와는 생명주기나 참조 범위에서 차이가 있다.
  • 멤버 변수명은 일반 변수명과 동일하게 소문자로 시작하는 것이 관례이다.
    단, static final로 선언된 변수인 경우 모두 대문자를 하는 경우도 많다.
  • 생명주기 : 해당 클래스 인스턴스가 메모리 상에서 삭제되기 전까지이다.
  • 멤버 변수 초기화 : 초기화를 하지 않아도 자동적으로 변수의 자료형의 기본값으로 초기화가 이루어짐.

+) 변수의 초기화란?

  • 변수를 선언하고 처음으로 값을 저장하는 것을 변수 초기화라고 한다.
  • 변수 초기화는 경우에 따라 필수적일 수도, 선택적일 수도 있지만 가능하면 선언과 동시에 적절한 값으로 초기화하는 것이 바람직하다.
  • 멤버 변수는 초기화를 하지 않아도 변수의 타입에 맞는 기본값으로 초기화가 이루어지지만 지역 변수는 사용하기 전에 반드시 초기화가 이루어져야 한다.
profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글