왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • OpenCV
  • alibi-detection
  • matplotlib
  • yolov8
  • ComputerVision
  • 비지도학습
  • 컴퓨터비전
  • get_long_description
  • 영상처리
  • unsupervised
  • 딥러닝
  • encoding='utf-8'
  • labelme UnocodeDecodeError
  • TensorFlow
  • UnboundLocalError
  • alibidetect
  • 기상탐사
  • maskimage
  • pip install labelme
  • tune()
  • pytorch
  • labelme
  • 영상기술
  • 영상처리역사
  • PYTHON
  • numpy
  • PIL
  • ckpt_file
  • imageprocessing
  • 의료이미징

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성
Java

Java - 접근제어자 / this / getter setter

Java - 접근제어자 / this / getter setter
Java

Java - 접근제어자 / this / getter setter

2023. 1. 19. 14:20
728x90

접근제어자

멤버 변수만 다른 파일에서 사용 가능하도록 하는 접근 제어자가 있다.

접근 제어자의 위치는 데이터 타입의 왼쪽에 입력한다.

총 4개가 있다.

 

 1. 아무것도 안 적는 것 => default : 같은 패키지 내에서만 접근 가능
 2. private : 다른 곳에서 접근 불가
 3. public : 아무데서나 접근 가능
 4. protected : 상속관계에서 사용 가능.

 

this 키워드

this 키워드는 클래스의 멤버 변수나 메소드를 가리킬 때 사용한다.

멤버 변수와 로컬 변수의 이름이 같으면 컴퓨터도 헷갈리고 사람도 헷갈린다.

따라서 this라는 키워드를 이용해서 구분해주는 용도로 사용한다.

 

getter setter

멤버 변수가 private으로 되어있으면 멤버 변수에 데이터를 저장하는 함수와 가져오는 함수가 있어야한다.

이를 getter / setter라고 부른다.

 

이클립스 툴에서 사용하는 방법

코드 작성하는 곳에 마우스 우클릭 후 Source -> Generate Getters and Setters 

어떤 멤버 변수를 처리할 것이냐 , 코드 작성은 어디 뒤에 할 것이냐, 접근제어자는 무엇으로 할것이냐를 체크 후 

Generate 클릭하면 아래와같이 만들어준다.

코드 (설명은 주석처리)

 

package data;

public class Member {
	

	
	// 멤버 변수만!!!!!! 다른 파일에서 사용가능토록 하는
	// 접근 제어자가 있다. 접근제어자의 위치는 데이터타입 왼쪽
	// 총 4개가 잇다.
	// 1. 아무것도 안 적는 것 => default : 같은 패키지 내에서만 접근 가능
	// 2. private : 다른 곳에서 접근 불가
	// 3. public : 아무데서나 접근 가능
	// 4. protected
	private String name;
	private String tel;
	private String address;
	
	public Member(){
	}
		
		public Member(String name,String tel,String address){
			this.name = name;
			this.tel = tel;
			this.address = address;
			System.out.println(this.name);
		}

	
	
	
	// 접근제어자는 클래스의 메소드에도 사용한다.
	// this 키워드.
	// this는 클래스의 멤버변수나 메소드를 가리킬 때 사용한다.
	// 멤버변수와 로컬변수의 이름이 같으면 컴퓨터도 헷갈리고 사람도 헷갈린다
	// 따라서 this라는 키워드를 이용해서 구분해주는 용도로 사용한다.
	public void setData(String name,String tel,String address){
		this.name = name;
		this.tel = tel;
		this.address = address;
	}
	public void print() {
		System.out.println(name);
		System.out.println(tel);
		System.out.println(address);
	}
	
	// 멤버 변수가 private으로 되어있으면 
	// 멤버 변수에 데이터를 저장하는 함수, 가져오는 함수가 있어야한다.
	// getter / setter라고 부른다.
	public void setName(String name) {
		this.name = name;
	}
	public String getName(){
		return name;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	
	

	

}
// 패키지는 폴더를 의미한다.
package main;
// 다른 패키지의 클래스를 사용하려면 import 해야한다.
import data.Member;

public class AccessMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Member m1 = new Member();
		
		// 아래코드는 Member 클래스의 멤버변수가
		// public일 때만 동작한다.
//		m1.name = "홍길동";
//		m1.tel = "010-1111-2222";
//		m1.address = "인천시 서구 가좌동";
		
		// 데이터를 저장하기 위해서는? 멤버 클래스에 함수가 제공되어야함.
		m1.setData("홍길동","010-1111-2222","인천시 서구 가좌동");
		
		// 생성자로 바로 데이터를 셋팅할 수 있도록 코드를 수정
		// 두번째 데이터
		// 김나나,0104433-2211,서울시 마포구 공덕동
		
		Member m2 = new Member("김나나","010-4433-2211","서울시 마포구 공덕동");
		m1.print();
		m2.print();
		
		// "홍길동"의 전화번호가 변경되었다.
		// 010-9999-3333
		m1.setTel("010-9999-3333");
		
		// "김나나"의 주소도 변경되었다.
		// 인천시 서구 청라
		m2.setAddress("인천시 서구 청라");
		
		// "홍길동"의 이름을 "친한친구 길동이"로 저장하고싶다.
		m1.setName("친한친구 길동이");
		System.out.println( m1.getName() );
		
		// 김나나의 전화번호만 가져오고싶다.
		System.out.println( m2.getTel() );
		
		
		// 홍길동의 주소만 가져오고싶다.
		System.out.println(m1.getAddress());
	}

}

'Java' 카테고리의 다른 글

Java - 추상클래스 (abstract)와 인터페이스(interface)  (0) 2023.01.20
Java - 상속 (Inheritance) / 메소드 오버라이딩 (Method Overriding) / super  (0) 2023.01.19
Java - 생성자(Constructor) , 생성자 오버로딩  (0) 2023.01.19
Java - 메소드 오버로딩 (Method Overloading)  (0) 2023.01.18
Java - Static (전역변수)와 메모리의 data영역  (0) 2023.01.18
  • 접근제어자
  • this 키워드
  • getter setter
'Java' 카테고리의 다른 글
  • Java - 추상클래스 (abstract)와 인터페이스(interface)
  • Java - 상속 (Inheritance) / 메소드 오버라이딩 (Method Overriding) / super
  • Java - 생성자(Constructor) , 생성자 오버로딩
  • Java - 메소드 오버로딩 (Method Overloading)
왕현성
왕현성
AI 머신비전 학습일지

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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