JAVA - this

박종휘·2022년 10월 3일
0

JAVA - 국비

목록 보기
12/29
post-thumbnail

1. this

1-1. 자기 자신을 의미하는 키워드

  • 클래스 안에서 this를 사용하여 "자기자신"을 표현한다. -> '객체 자기자신'을 의미
    즉, this 키워드를 통해 클래스 메서드 및 생성자에서 자기 자신의 데이터를 업데이트하거나 조작할 수 있다.
    {출처: https://engkimbs.tistory.com/873 [새로비:티스토리]}

1-2. this를 사용하여 지역변수와 멤버변수(전역변수) 구분하기

class Student{
		String name; // 전역변수
        
        public voic setName(){
        		String name;	// 지역변수
                name = "자바학생";	// 지역변수에 할당
        }
}

  • 멤버변수와 지역변수가 동일한 이름으로 공존할 경우, 유효성 범위가 작은 변수가 우선적으로 인식된다.
class Student{
		String name;
        
        public void setName(){
        		String name;
                name = "자바학생";	// 현재 지역변수 name
                this.name = "JSP학생";	// 클래스 멤버변수로 선언된 name
        }
}

  • this를 사용하여 파라미터와 멤버변수 구하기
    • 파라미터도 해당 메서드 안에서만 유효한 지역변수의 일종이다.
    • 파라미터를 사용하여 멤버변수의 값을 간접적으로 설정하고자 할 경우, 이름은 동일하게 지정하고 this 키워드를 사용하여 멤버변수와 파라미터를 구별하는 것이 java언어의 일반적인 처리 방식이다.
class Student{
		String name; // 전역변수
        
        // setName 메서드
        public void setName(String name){
        		this.name(← 전역변수) = name;
        }
}

Main 05

class User{
	String subject;
	int age;
	String hobby;
	
	public void setName( String name, String hobby ) {
		System.out.println( name );
		this.subject = "국비지원";
		this.age = 25;
		this.hobby = hobby; // 파라미터로 넘어온 값을 전역변수에 할당
		System.out.println( "과목 : " +  this.subject + ", 나이 : " + this.age 
				+ ", 취미 : " + this.hobby );
	}
}

public class Main05 {

	public static void main(String[] args) {
		User u1 = new User();
		u1.setName("자바학생", "독서");
	}
}
result

자바학생
과목 : 국비지원, 나이 : 25, 취미 : 독서

  • 모든 멤버변수 앞에는 this 키워드를 사용하여 멤버변수임을 직관적으로 표시하는 것이 소스코드의 가독성을 위하여 바람직하다.

1-3. 현재 클래스의 메서드를 의미하는 용도로서의 this

  • 메서드의 경우 this.getName()이 아닌, getName()만 사용하더라도 코드 가독성의 문제는 없다.

1-4. this 키워드를 활용한 멤버변수와 메서드의 접근

  • 멤버변수는 지역변수와 구별하기 위하여 가급적 this를 통하여 접근한다.
  • 메서드에 접근할 때 this 키워드를 사용하는 것이 필수적인 것은 아니다.
class Student { 
	int age;
    String name;
    
    // getName 메서드
    public Stirng getName() {
    	String name = "자바학생";
        return name;
    }
    
    // sayName 메서드
    public void sayName() {
    	String myname = getName();
        // String myname = this.getName();
        // 나 자신의 클래스에 있는 getName() 메서드로 찾아간다.
        // 그리고 값을 다시 리턴받는다.
        // -> this 생략 가능한 이유 중 하나는 메서드 이름은 중복이 불가하기 때문에
        System.out.println(myname);
    }
}

public class Main01 {
	public static void main(String[] args) {
    	Student std = new Student();
        std.sayName();
    }
}
result

자바학생

2. 클래스, 메서드, 상수의 이름 규칙

2-1. 공통 이름 규칙

  • 영어, 숫자, 언더바( _ )의 조합, 첫 글자는 반드시 영어로 표기한다.

2-2. 클래스 이름 규칙

  • 첫 글자는 대문자로 시작, 나머지 글자는 소문자로 표시한다.

  • 두 개 이상의 단어를 조합해야 할 경우 새로운 단어는 대문자로 시작한다.

    		class Student
      		class MyClass
            class NetworHelper

2-3. 메서드, 변수 이름 규칙

  • 대부분 소문자로 구성되지만, 두 개 이상의 단어를 조합할 경우 새로운 단어는 대문자로 표기한다.

    		int age
      		String user_name
            String userName
            String memberCount
            동사 + 명사
            getName
            setAge

2-4. 상수 이름 규칙

  • 모두 대문자로 표시한다.

    		final double PI
      		final int COLOR
profile
개린이의 개발 고수되기 작전!

0개의 댓글