자바-9일차(4) 이클립스

최성현·2023년 6월 27일
0

Java

목록 보기
17/46

클래스

//private 붙이는 순간 에러(클래스 변수명=new 클래스명();)...메서드로 접근해야함

//private 붙여서 호출

private int x; //메인에서 ObTestA oa1=new ObTestA(); 이걸로 호출 불가능

private static int y; //메인에서 ObTestA.y 이걸로 호출 불가능

-private x set 메서드
-void만 올 수 있음(set 메서드)

public void setX(int xx) //=>수정을 목적으로 하기 때문에 인자값 필수
{
//this.x=xx;
//this는 멤버 자기자신

x=xx;
//private과 이 setX(인자값)의 인자값과 이름이 틀릴때 this생략하여 사용
}

-private x get 메서드

//무조건 private x get 메서드 ()안 인자값x
//void 말고도 올 수 있음 => 그럴땐 return값 받아야지만 사용가능

public void getX() //=>set으로 설정한걸 get으로 받아옴
{
System.out.println("x="+this.x);
}

package day0627;

//메서드 만드는 class
class ObTestA{
	
	//private 붙이는 순간 에러...메서드로 접근해야함
	//private 붙여서 호출
	private int x; //메인에서 ObTestA oa1=new ObTestA(); 이걸로 호출 불가능
	private static int y; //메인에서 ObTestA.y 이걸로 호출 불가능
	
	
	
	//x에 대한 set get 메서드
	
	//private x set 메서드
	//void만 올 수 있음
	public void setX(int xx) //=>수정을 목적으로 하기 때문에 인자값 필수
	{
		//this.x=xx; //this는 멤버 자기자신
		x=xx; //private과 이 setX(인자값)의 인자값과 이름이 틀릴때 this생략하여 사용
	}
	
	//무조건 private x get 메서드 ()안 인자값x
	//void 말고도 올 수 있음 => 그럴땐 return값 받아야지만 사용가능
	public void getX() //=>set으로 설정한걸 get으로 받아옴
	{
		System.out.println("x="+this.x);
	}
	
	
	
	
	//y의 set get
	
	public static void setY(int yy)
	{
		
		//this.y=yy; private static에서는 this 사용 불가능
		//static에서는 일반멤버변수 호출 불가능...static변수만 호출가능
		ObTestA.y=yy; // private static은 이렇게 접근 // 같은 클래스라면 y=yy; 접근 가능
		
	}
	
	public static void getY()
	{
		System.out.println("y= "+ObTestA.y);
	}
	
} 

메인

//private변수이므로 메서드 만들어서 호출 가능..변수에 직접 접근안됨 set/get 사용

//x호출
ObTestA oa1=new ObTestA(); -> 클래스명 변수명=new 클래스명();
oa1.setX(20);//->()값 수정
oa1.getX(); // set으로 설정한걸 get으로 받아옴

//ObTestA.y=200; private라서 이렇게 접근하면 오류발생
//y호출...클래스명으로 호출
ObTestA.setY(50); ->클래스명.set메서드명(인자값);
ObTestA.getY(); -> 클래스명.get메셔드명();

public class ExObTest_06 {

	public static void main(String[] args) {
		
		/*x는 생성 ..private 붙이는 순간 에러...메서드로 접근해야함
		ObTestA oa1=new ObTestA();
		System.out.println(oa1.x);
		
		//y는 클래스명으로 호출
		System.out.println(ObTestA.y);*/
		
		
		//private변수이므로 메서드 만들어서 호출 가능..변수에 직접 접근안됨 set/get 사용
		ObTestA oa1=new ObTestA();
		oa1.setX(20); //->()값 수정
		oa1.getX(); // set으로 설정한걸 get으로 받아옴
		
		ObTestA oa2=new ObTestA();
		oa2.setX(50);
		oa2.getX();
		
		//ObTestA.y=200; private라서 이렇게 접근하면 오류발생
		//y호출...클래스명으로 호출
		ObTestA.setY(50);
		ObTestA.getY();

	}

}

클래스

같은 패키지 안에 같은 클래스 이름이면 에러

private String name; //null
private int age; //0

//settermethod
//instance 변수에 저장된 데이터를 수정할 목적(set변수명)
수정할 인자값이 있다
//저장수정용도이므로 return값(결과값)이 없다(void)
public void setName(String name)
{
this.name=name; //this.클래스에 있는 name=setName 인자값에 있는 name
}

//getter_method
//instance변수에 저장된 데이터를 조회(나중에 SQL에서 select)할 목적(get 변수명)
//데이터를 얻는 목적이므로 호출 데이터를 넘겨줄 필요가 없으므로 인자값(파라메터값)이 없다
//실행결과를 돌려주므로 "return 결과값" 으로 지정
public String getName()
{
return name; //=>set메서드에서 this.name에서 ~~.name
}

public int getAge()
{
eturn age;
}

public void setAge(int age) //=>인자값이 클래스 변수명과 동일한 필요x
{
	this.age=age; //this.클래스에 있는 age=setAge 인자값에 있는 age
}
package day0627;

//같은 패키지 안에 같은 클래스 이름이면 에러
class Student{
	
	private String name; //null
	private int age; //0
	
	
	//setter_method
	//instance 변수에 저장된 데이터를 수정할 목적(set변수명)_수정할 인자값이 있다
	//저장수정용도이므로 return값(결과값)이 없다(void)
	public void setName(String name)
	{
		this.name=name; //this.클래스에 있는 name=setName 인자값에 있는 name
	}
	
	public void setAge(int age) //=>인자값이 클래스 변수명과 동일한 필요x
	{
		this.age=age; //this.클래스에 있는 age=setAge 인자값에 있는 age
	}
	
	//getter_method
	//instance변수에 저장된 데이터를 조회(나중에 SQL에서 select)할 목적(get 변수명)
	//데이터를 얻는 목적이므로 호출 데이터를 넘겨줄 필요가 없으므로 인자값(파라메터값)이 없다
	//실행결과를 돌려주므로 "return 결과값" 으로 지정
	public String getName()
	{
		return name; //=>set메서드에서 this.name에서 ~~.name
	}

	public int getAge()
	{
		return age;
	}
}

메인

public class SetGetMethod_07 {

	public static void main(String[] args) {
		
		//생성 -> 수정 -> 출력
		
		//1.객체생성
		Student stu1=new Student(); //디폴트 생성자
		
		//2.참조변수명으로 set메서드 호출
		stu1.setName("최지우");
		stu1.setAge(33);
		
		//3.get메서드를 통한 값얻기
		String name=stu1.getName(); //같은 class가 아니라서 참조변수명 name 써도 무관
		int age=stu1.getAge();
		
		//출력
		System.out.println(name+""+age);
		
		
		//2번째 생성 및 출력
		Student stu2=new Student();
		
		stu2.setName("츄");
		stu2.setAge(25);
		
		System.out.println(stu2.getName()+" "+stu2.getAge());
		

	}

}
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글