본문 바로가기

프로그래밍 언어/java19

[java] this와 참조자료형 자바뿐만 아니라 다른 프로그래밍 언어에서도 this를 사용한다. this의 정확한 역할에 대해 알아보자 this의 역할 자신의 메모리를 가리킨다. 생성자에서 다른 생성자를 호출한다. 인스턴스 자신의 주소를 반환한다. 1. 자신의 메모리를 가리킨다. day는 참조 변수로 인스턴스의 주소값을 가리킨다. day의 메서드인 setYear에서 this를 사용한다. public class MyDate { private int year; public void setYear(int year) { this.year = year; } } 이 때 this를 사용하는 이유는 매개변수와 멤버변수를 구분하기 위해서이다. 만약 매개변수가 year이 아니라 y였다면 this를 붙이지 않고 year = y가 가능하다. 하지만 매개변수.. 2021. 2. 24.
[java] 접근 제어자, 정보 은닉 접근 제어자 용어는 처음 들어봤어도 자바 코딩하다 보면 public을 한 번 쯤은 봤을 것이다. 이 public이 바로 접근제어자인데 변수, 메서드, 생성자에 대한 접근 권한을 지정하는 것이다. 총 4개의 접근제어자가 있으며 권한은 다음과 같다. private은 클래스 외부에서 접근 불가능하다. 정보 은닉 private을 사용하면 외부에서 클래스 내부의 정보에 접근을 막을 수 있다. 일종의 guard인 셈 클래스 내부 데이터를 잘못 접근,사용하는 오류를 방지하기 위함이다. private 변수 private 변수는 디폴트 생성자로 생성이 불가능하다. private 변수를 지정하는 방법은 크게 2가지가 있는데 1. 생성자를 따로 만들어주거나 2. setter를 사용하는 방법이다. 이 때 public 메서드를.. 2021. 2. 24.
[java] 클래스 생성자 생성자 객체 초기화 방법이라고 생각하면 된다. 객체 생성 시 new 키워드와 함께 호출된다. 인스턴스를 초기화한다. (주로 멤버 변수를 초기화) 반환 값이 없고 상속되지 않는다. 클래스 이름과 동일하다. 하나의 클래스에는 반드시 하나 이상의 클래스가 존재하야 하며 프로그래머가 구현하지 않으면 컴파일러가 default constructor를 만들어준다. public class Subject { int subjectID; int score; //default public Subject() {}; //custom public Subject(int id, int score) { this.subjectID = id; this.score = score; } } default constructor 매개변수가 없고 구.. 2021. 2. 24.
[java] 클래스와 인스턴스 객체지향언어인 자바의 메인! 클래스와 인스턴스의 용어를 정리해보자. 클래스 - 멤버 변수: 클래스에서 선언된 변수 - 메서드: 클래스 내 함수 클래스 내에 선언된 변수를 멤버변수, 함수를 메서드라고 칭한다. package chapter2; public class Student { //멤버 변수 public int number; public String name; public String address; //메서드 public void showInfo() { System.out.println(number + " : " + name + " , " + address); } } ++ 지역변수와의 차이점 함수 내에서 선언된 변수는 지역변수이다. 지역변수와 멤버변수는 저장되는 위치에 있어서 차이가 있다. 지역변수의.. 2021. 2. 22.