📅  最后修改于: 2023-12-03 14:52:45.472000             🧑  作者: Mango
在Java编程中,我们经常需要在不同的类之间传递数据或者对来自不同类的值进行操作。
下面介绍一些常见的方法。
如果需要访问来自其他类的私有变量,可以在该类中添加getter和setter方法。
例如,在类A中定义一个私有变量age,并添加getter和setter方法:
public class A {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在类B中,可以通过getter和setter方法来访问A类的age变量:
public class B {
public static void main(String[] args) {
A a = new A();
a.setAge(18);
System.out.println("age: " + a.getAge()); // 输出 age: 18
}
}
静态变量属于类,而不是对象。因此,可以在其他类中直接访问静态变量,而不需要创建该类的对象。
例如,定义一个带有静态变量的类C:
public class C {
public static int num = 10;
public static void printNum() {
System.out.println("num: " + num);
}
}
在类D中可以直接访问C类中的静态变量和静态方法:
public class D {
public static void main(String[] args) {
System.out.println("num: " + C.num); // 输出 num: 10
C.printNum(); // 输出 num: 10
}
}
如果需要在一个类中使用另一个类的对象,可以将另一个类的对象作为参数传递给该类的构造函数。
例如,在类E中定义一个构造函数,接收一个A类的对象:
public class E {
private A a;
public E(A a) {
this.a = a;
}
public void printAge() {
System.out.println("age: " + a.getAge());
}
}
在类F中,创建一个A类的对象,并将其传递给E类的构造函数:
public class F {
public static void main(String[] args) {
A a = new A();
a.setAge(20);
E e = new E(a);
e.printAge(); // 输出 age: 20
}
}
如果多个类有相同的属性或方法,可以将它们抽象成一个接口,然后让这些类实现该接口。
例如,定义一个接口G,其中包含一个printAge方法:
public interface G {
public void printAge();
}
类A和类H都实现了接口G:
public class A implements G {
private int age;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void printAge() {
System.out.println("age: " + age);
}
}
public class H implements G {
private int age;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void printAge() {
System.out.println("age: " + age);
}
}
在类I中可以通过接口来调用printAge方法:
public class I {
public static void main(String[] args) {
G a = new A();
a.setAge(30);
a.printAge(); // 输出 age: 30
G h = new H();
h.setAge(40);
h.printAge(); // 输出 age: 40
}
}
以上是一些比较常用的在Java中对来自不同类的值进行操作的方法。根据具体的需求,我们可以选择合适的方法来进行操作。