[Java]자바 프로그래밍(필드와 메소드)

2024. 1. 4. 20:54· 공부/Java
목차
  1. 이전 요약
  2. 변수의 종류
  3. 필드의 선언
  4. 필드의 사용 범위
  5. 필드의 초기화
  6. 설정자(setter)와 접근자(getter)
  7. 설정자와 접근자는 왜 사용하는가?
  8. 지역 변수
  9. 변수와 변수의 비교
  10. 메소드
  11. 매개변수 기초형 변수 작동 과정
  12. 매개변수 참조형 변수 작동 과정
  13. 메소드 반환
반응형

필드와 메소드

  • 클래스와 객체
  • 메소드
  • 필드

이전 요약

  1. 객체는 속성과 동작을 가지고 있다.
  • 객체는 클래스라는 틀로 만든 하나의 객체
  • 속성은 해당 객체의 변수
  • 동작은 해당 객체의 함수 혹은 동작을 하는 부분

변수의 종류

  • 필드(field) : 클래스 안에서 선언되는 멤버 변수, 인스턴스 변수라고도 한다.
  • 지역 변수(local variable) : 메소드나 블록 안에서 선언되는 변수
  • 매개 변수(parameter) : 메소드 선언에서의 변수
class test {
	public int speed; // 필드
	
	void start(int s) { // int s 는 매개 변수
		int tmp; // 지역 변수 해당 메소드 실행이 끝나면 사라진다.
	}
}

필드의 선언

public int speed; 

public : 접근 지정자

int : 필드의 타입

speed : 필드의 이름

필드의 접근 지정자는 어떤 클래스가 필드에 접근이 가능한지를 정한다.

public : 이 필드는 모든 클래스로부터 접근이 가능

private : 클래스 내부에서만 접근이 가능

필드의 사용 범위

public class test {
	public void print() {
		System.out.println(year, month, day);
	}

	// 필드 선언
	private int year;
	private int month;
	private int day;
}
  • 필드는 선언 위치와는 상관없이 해당 클래스 어디서나 사용이 가능하다.

필드의 초기화

  • 필드는 선언과 동시에 초기화 가능
public class test {
	public static int s = 10;
	private boolean use = false;
}
  • static은 정적 필드를 뜻함, 추후 설명

설정자(setter)와 접근자(getter)

  • 설정자(mutator)
    • 필드의 값을 설정하는 메소드
    • setXXX( ) 형식
  • 접근자(accessor)
    • 필드의 값을 반환하는 메소드
    • getXXX( ) 형식
public class test {
	private String color;

	public String getColor() {
		return color;
	}
	public void setColor(String c) {
		this.color = c;
	}
}

public class test1 {
	public static void main(String[] args) {
		// 객체 생성
		test t = new test();
		
		t.setColor("black");
		System.out.println(t.getColor());
	}
}

실행 결과 : black

설정자와 접근자는 왜 사용하는가?

  • 설정자에서 매개 변수를 통하여 잘못된 값이 넘어오는 경우, 이를 사전에 차단할 수 있다.
  • 필요할 때 마다 필드값을 계산하여 반환할 수 있다.
  • 접근자만을 제공하면 자동적으로 읽기만 가능한 필드를 만들 수 있다.
// 예시
public void setSpeed(int s) {
	if (s < 0)
		speed = 0;
	else
		this.speed = s;
}
  • 위의 예시는 s가 음수이면 0으로 대치하고 0이 아니면 매개 변수의 값을 필드에 대입한다.

지역 변수

  • 메소드 안에 선언
  • 메소드의 매개 변수도 지역 변수의 일종이다.
  • 지역 변수는 무조건 초기화를 하고 사용해야 한다.
  • 메소드/사용 (이)가 끝나면 자동으로 메모리에서 삭제됨

변수와 변수의 비교

  • ”변수1 == 변수2” 사용 시 주의하여 사용하여야 된다.
  • 기초형 변수일 경우 데이터 값이 같은지를 확인하여 boolean로 반환하여 주는게 맞지만, 참조형 변수일 경우 메모리 참조 값이 같은 지 확인하기 때문에 사용자의 의도와 다르게 사용 될 수 있다.
  • 내용이 같은 지를 검사하려면 equals( ) 메소드 를 사용하는 것이 정확하게 검사할 수 있다.

메소드

  • 메소드는 객체가 할 수 있는 기능을 나타낸다.
  • 메소드 == 클래스 안에 포함된 함수

매개변수 기초형 변수 작동 과정

Car t = new Car();
x = 10;
t.speedUp(x);
public void speedUp(int i) {
	this.speed += i; // 매개 변수는 외부에서 값을 전달 받아 변수로 사용될 수 있다.
}
  • 매개 변수가 기초형 변수일 경우, 값이 복사된다.

매개변수 참조형 변수 작동 과정

  • 매개 변수가 참조형 변수일 경우 메모리 참조값이 매개변수로 전달된다.
Car t1 = new Car();
Car t2 = new Car();
t1.speedEquals(t2);
public int speedEquals(Car tmp) {
	if (this.speed == tmp.speed )
		return true;
	else
		return false;
}
  • t1와 t2 객체의 speed 필드 값을 비교하는 메소드이다.

메소드 반환

  • 메소드는 작업의 결과값을 반환 할 수 있습니다.
  • 반환값은 하나만 가능합니다.
public int getSpeed() {
	return speed;
}

....

Car t1 = new Car();
int val = t1.getSpeed();
  • 메소드의 int 부분은 반환값을 정의한다.
  • 메소드의 반환값 타입과 메소드 정의할 때 반환하는 데이터 타입이 다르면 오류 발생
반응형
  1. 이전 요약
  2. 변수의 종류
  3. 필드의 선언
  4. 필드의 사용 범위
  5. 필드의 초기화
  6. 설정자(setter)와 접근자(getter)
  7. 설정자와 접근자는 왜 사용하는가?
  8. 지역 변수
  9. 변수와 변수의 비교
  10. 메소드
  11. 매개변수 기초형 변수 작동 과정
  12. 매개변수 참조형 변수 작동 과정
  13. 메소드 반환
'공부/Java' 카테고리의 다른 글
  • [Java]자바 프로그래밍(생성자와 접근제어)
  • [Java]자바 프로그래밍(필드와 메소드2)
  • [Java]자바 프로그래밍(클래스와 객체 - 2)
  • [Java]자바 프로그래밍(클래스와 객체)
Future0_
Future0_
rm -rf /
Future0_
Luna Developer Blog
Future0_
전체
오늘
어제
  • 분류 전체보기 (112)
    • 프로그래밍 (4)
      • 알고리즘 (4)
    • 보안 (14)
      • Dreamhack (4)
      • Hackthebox (1)
      • Webhacking (9)
    • 프로젝트 (4)
    • 공부 (80)
      • Database (2)
      • Python (11)
      • System (4)
      • Java (13)
      • JSP (13)
      • Spring (11)
      • Kotlin (16)
      • 자료구조 (10)
      • 기계학습 (0)
    • Docker (4)
    • Github (2)
    • Tip (1)
    • 잡담 (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 코틀린기본문법
  • 상속
  • 자바빈즈
  • 디버깅키해시
  • 자료구조
  • Kotlin
  • 알고리즘
  • 키 해시
  • cs
  • jsp
  • spring
  • 1.9.22
  • Database
  • Python
  • native app
  • webhacking
  • Computer science
  • dreamhack
  • ViewModel
  • api 통신
  • React
  • docker
  • shared preference
  • 보안
  • android studio 삭제
  • 프로그래밍
  • Android Studio
  • 컴퓨터
  • SpringBoot
  • Java

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
Future0_
[Java]자바 프로그래밍(필드와 메소드)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.