JAVA-6

유명준·2024년 2월 1일

JAVA

목록 보기
5/15
post-thumbnail

1. 객체(Object)

1-1. 객체란

  • 프로그램에서 표현하고자 하는 기능을 묶기 위한 단위

1-2. 객체를 구성하는 단위

  • 객체를 이루는 것은 데이터와 기능이다.
  • 객체 안에 포함되 변수를 '맴버변수' 혹은 '프로퍼티'라 한다.
  • 기능은 메서드(=함수)를 표현된다.

1-3. 클래스와 객체의 관계

  • 객체를 생성하기 위해서는 객체의 설계도가 필요하다.

1-4. 클래스

  • 객체의 설계도 역활을 하는 프로그램 소스
  • 공장에서 하나의 설계도를 사용하여 여러 개의 제품을 생산하는것 처럼 하나의 클래스를 통해
    동일한 구조를 갖는 객체를 여러개 생성할수 있다.

1-5. 클래스의 기본 작성 방법

  • class 클래스 이름{
    맴버변수;

    void 메서드이름(){
    	...
    }

    }

    -> class라는 예약어와 클래스의 이름을 명시하고 {...}블록을 구성한다.
    -> 맴버변수는 여러개 존재할수 있다. 이 때, 값을 선언과 동시에 할당할 수도 있고,
                 객체를 통해 간접적으로 할당할 수도 있다.
    -> 메서드는 여러개 존재할 수 있다.
    -> 클래스 안에 포함된 맴버변수와 메서드를 특성에 따라 그룹화하기 위한 
      기법이 클래스를 작성하는 것이라고 이해 할수있다.

1-6. 객체의 생성 방법

  • 객체의 선언
    클래스이름 객체이름 :

  • 객체의 할당
    객체이름 = new 클래스이름();

  • 선언과 할당의 통합
    클래스이름 객체이름 = new 클래스이름();

1-7. 객체의 사용

  • 객체 안에 포함된 변수나 메서드는 점(.)으로 연결하여 접근한다.
    -> 값 접근
    객체이름.맴버변수;

    	->객체 안에 포함된 변수의 값을 다른 변수에 복사하는 경우
    	변수 = 객체이름.멤버변수;
    
    	->객체 안에 포함된 변수의 값에 다른 값을 대입하는 경우
    	객체이름.맴버변수= 값;
    
    	->객체 안에 포함된 메서드를 호출하는 경우
    	객체이름.메서드이름();
    
    	->객체 안에 포함된 메서드의 파라미터를 전달하는 경우
    	객체이름.메서드이름(값1 , 값2, . .);
->객체

1-8. 클래스의 맴버변수

  • 같은 클래스를 통하여 생성된 객체라 할지라도 서로 다른 값을 대입하면 서로 독립적인 형태로 존재하게 된다.

    	std.name="이순신";
    	std.age=20;
    	std2.name="홍길동";
    	std2.age=30;
  • 값이 대입되지 않은 맴버변수를 갖는 클래스
    -> 클래스란 객체를 위한 틀을 제공하는 것이기 때문에 클래스 작성과정에서 맴버변수에
    대입된 값은 객체를 통하여 맴버변수의 값을 지정하기 전까지 사용될 "기본값"으로서 의미이다.
    -> 객체를 통하여 새로운 값이 대입되면 클래스 작성시에 맴버변수에 대입한 값은 의미를 잃어버리게 된다.
    -> 때문에 일반적으로 클래스 작성시에는 맴버변수에 값을 지정하지 않는다.

1-9. 메서드를 포함하는 클래스

  • 메서드란 프로그램에서 하나의 동작 단위를 의미한다.
  • 두 개 이상의 메서드가 서로 동일한 대상을 위해서 존재할 경우,
    이 매서드들을 클래스에 포함시켜 그룹화 할수있다.
  • 클래스에 맴버변수와 메서드가 공존할 경우, 맴버변수는 모든 메서드가 공유하는 전역 변수로 존재하게 된다.

1-10. 변수의 종류

  • 맴버변수(=전역변수)
    -> 클래스 안에서 선언된 변수로서 , 클래스 블록 범위 안에서 유효하다
  • 지역변수
    -> 메서드 안에서 선언된 변수로서, 메서드의 블록을 빠져나가지 못한다, 그러므로 다른 메서드는
    해당 변수를 인식하지 못한다. 이 규칙은 조건, 반복문과 같은 블록{}을 형성하는 모든 경우에
    해당이된다.

1- 11. null

  • java에서 null은 참조 변수가 어떤 객체도 가리키지 않음을 나타내는 단어

  • 기본 데이터타입에 쓸수 없다.

  • 게본 데이터타이에서 쓸수 없다

    	int null;      // errer
    	double b =null   // errer
    
    	String c = null //가능
    	imt[] d = null   // 가능

1-12. 메서드만 포함하는 클래스

  • 객체 안에 맴버변수(=데이터)가 포함되지 않는다
  • 객체 안에 포함된 메서드를 호출하여 결과를 만들기 위한 목적이므로 굳이 여러개의 객체를
    생성할 필요가 없다

2.this

2-1. this란

  • 자기 자신을 의미하는 키워드

  • 클래스 안에서 this를 사용하여 "자기자신"을 표현한다.

    class Student{
    	String name;
    	
    	public void setName(){
    		String name; 
    		name = "자바학생";       //결과 null
    	}
    }
    ![](https://velog.velcdn.com/images/upjp/post/6c9786b9-e87d-41d1-b264-fc9d79fdbc8b/image.png)

    -> 맴버변수와 지역변수가 동일한 이름으로 공존할 경우 
      유효성 범위가 작은 변수가 우선적으로 인식된다.

-this를 사용하여 지역변수와 멤버변수 구분하기
class Student{
String name;

	public void setName(){
		String name;
		name = "자바학생";
		this.name = "홍길동";    //결과 홍길동
	}
}

2-2. this를 사용하며 파라미터와 멤버변수 구분하기

  • 파라미터도 해당 메서드 안에서만 유효한 지역변수의 일종이다.

  • 파라미터를 사용하여 멤버변수의 값을 간접적으로 설정하고자 할경우, 변수의 이름을 서로 다르게
    사용하는 것 보다는 이름은 동일하게 지정하고 this키워드를 사용하여 맴버변수와 파라미터를 구별하는 것이
    java언어 일반적이 규칙이다.

    	class Student{
    		String name; 
    
    		public void setName(String name){
    			this.name =name;
    		}
    	}
    	-> 모든 맴버변수 앞에는 this 키워드를 사용하여 멤버변수임을 직관적으로 표시하는 것이 소그코드의
    	   가독성을 위하여 바람직하다.

0개의 댓글