자바에서 다른 클래스에 있는 변수 값을 가져오려면, 그 변수를 public으로 선언하거나 getter 메소드를 사용할 수 있습니다. 예를 들어, ClassA에 있는 변수를 ClassB에서 가져오려면 다음과 같이 할 수 있습니다:
// ClassA.java
public class ClassA {
public static String myVariable = "Hello, World!";
}
// ClassB.java
public class ClassB {
public void printVariable() {
System.out.println(ClassA.myVariable);
}
}
이 코드에서 ClassA에 있는 myVariable은 public으로 선언되어 있으므로, ClassB에서 직접 접근할 수 있습니다. 하지만 이 방법은 캡슐화 원칙을 위반하므로, 일반적으로는 getter와 setter 메소드를 사용하여 변수에 접근합니다:
// ClassA.java
public class ClassA {
private static String myVariable = "Hello, World!";
public static String getMyVariable() {
return myVariable;
}
}
// ClassB.java
public class ClassB {
public void printVariable() {
System.out.println(ClassA.getMyVariable());
}
}
이 코드에서 ClassA의 myVariable은 private으로 선언되어 있지만, getMyVariable 메소드를 통해 그 값을 가져올 수 있습니다
인스턴스 변수를 통한 전달: 한 클래스의 인스턴스 변수를 다른 클래스에서 접근할 수 있게 하려면, 해당 변수를 public으로 선언하거나 getter와 setter 메소드를 사용할 수 있습니다
public class ClassA {
private String data; // 인스턴스 변수
// getter 메소드
public String getData() {
return data;
}
// setter 메소드
public void setData(String data) {
this.data = data;
}
}
public class ClassB {
public void accessData() {
ClassA classA = new ClassA();
classA.setData("Hello, World!"); // setter를 통해 데이터 설정
System.out.println(classA.getData()); // getter를 통해 데이터 접근
}
}
정적 변수를 통한 전달: 정적(static) 변수는 클래스의 모든 인스턴스가 공유하는 변수로, 이를 통해 데이터를 전달할 수도 있습니다
public class ClassA {
public static String data; // 정적 변수
}
public class ClassB {
public void accessData() {
ClassA.data = "Hello, World!"; // 정적 변수에 직접 접근
System.out.println(ClassA.data);
}
}
메소드 매개변수를 통한 전달: 한 클래스의 메소드가 다른 클래스의 인스턴스를 매개변수로 받아, 그 인스턴스의 메소드를 호출하거나 변수에 접근할 수도 있습니다
public class ClassA {
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
public class ClassB {
public void accessData(ClassA classA) { // ClassA의 인스턴스를 매개변수로 받음
classA.setData("Hello, World!");
System.out.println(classA.getData());
}
}
'애기 개발자(현재) > 잡다한거' 카테고리의 다른 글
AUTO_INCREMENT 값 초기화 (0) | 2023.11.07 |
---|---|
vs code ssh 연결 및 오류 (0) | 2023.09.15 |
android.support.constraint.constraintlayout 에러 안드로이드 스튜디오 임포트 오류 (1) | 2023.09.15 |
AWS EC2 인스턴스 생성, 접속, MySQL 설치, Apache, PHP 연동하는 법 오류 정리 (0) | 2023.09.12 |