everyday com-eat
작성일
2021. 12. 12. 22:27
작성자
갱수터
728x90

하나의 클래스로 하나의 객체를 만들면 새로운 주소가 생기고

그 객체엔 data영역과 method 영역이 있다.

예를 들어 객체의 주소가 전주라고 했을 때, 전주로 간다면

데이터 영역에 있는 데이터 값들을 세팅할 수도 있고

세팅되어 있는 데이터 값들을 꺼내와 응용할 수 있다.

객체생성

클래스명() 객체참조변수 = new 클래스명();

좌항: 클래스명 class data type으로 객체참조변수를 선언하고

우항: 클래스명() 생성자 메서드를 호출해서 새로운 객체를 생성한다.

(새로운 객체가 생성되면 새로운 주소가 생성되고, data영역과 method 영역이 생긴다.)

새로운 주소를 객체참조변수에 할당 한다.

 

> 클래스명() 생성자 메서드로(클래스를 통해) 생성된 객체 주소를 찾아간다.

ex) 객체참조변수.클래스의전역변수 -> u01.uid

 

접근지정자

 

만약에 다른클래스의 전역변수의 접근지정자가 private라면?

자기클래스내부에서밖에 접근하지 못하기 때문에 설정자(setters)와 접근자(getters)를 이용해야한다

AA01.java
User.java
package kr.or.ksmart.A;
public class AA01 {
 public static void main(String[] args) {
  User u01 = new User();
  System.out.println(u01.getUid() + "<-- 입력전");
  u01.setUid("uid001");
  System.out.println(u01.getUid() + "<-- 입력후");
 }
package kr.or.ksmart.A;
public class User
 private String uid;
 public void setUid(String a) {
  System.out.println(a + "<- uid setUid User.java");
  uid = a;
 }
 public String getUid() {
  return uid;
 }
}
null<-- 입력전
uid001<- uid setUid User.java
uid001<-- 입력후

전역변수와 지역변수의 이름이 같을때 구분하는 방법

전역변수 앞에 this.를 붙인다. (객체 자신을 참조할 수 있는 키워드)

private String uid;

public void setUid(String uid) {
  System.out.println(uid + "<- uid setUid User.java");
  this.uid = uid;
}

***blooean 타입은 문법적으로 getUid가 아니라 isUid 로 써야함

 

 

 

이클립스 도구 사용하기 오른쪽마우스>source>Generate Getters and Setters