java面向对象

发布于:2025-07-27 ⋅ 阅读:(20) ⋅ 点赞:(0)

一个类调用另外一个类的对象

一个类调用另一个类的对象,具体来说:

  1. UserTest类(调用方)
  • 在main方法中创建了User类的对象
  • 代码:User user = new User(id: 1, name: "d", password: "d");
  1. User类(被调用的类)
  • 被UserTest类实例化,创建了一个对象
  • 这个对象包含了id=1, name='d', password='d'的属性

这就是面向对象编程中的核心概念:

  • 一个类可以通过new关键字创建另一个类的对象
  • UserTest类调用了User类的构造函数,创建了一个User对象
  • 然后可以对这个对象进行操作,比如打印输出:System.out.println(user);

从控制台输出可以看到,成功创建了User对象:User{id=1, name='d', password='d'}

这是Java面向对象编程的基础概念

为什么能调用

1. 类之间的可见性关系

在Java中,类之间能否相互调用主要取决于可见性:

// User.java
public class User {  // public表示这个类可以被其他类访问
    private int id;
    private String name;
    private String password;
    
    // 构造函数
    public User(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }
}

// UserTest.java  
public class UserTest {
    public static void main(String[] args) {
        // 因为User类是public的,所以UserTest可以创建User对象
        User user = new User(1, "d", "d");
    }
}
2. 为什么能调用的具体原因
包结构关系

从你的项目结构可以看到:

src/main/java/com/itheima/
├── pojo/
│   ├── User.java
│   └── UserTest.java
  • User和UserTest都在同一个包com.itheima.pojo下
  • 同一个包内的类默认可以相互访问
访问修饰符
  • User类声明为public,意味着任何地方都可以访问
  • User类的构造函数也是public的,允许外部创建对象
3. 调用过程详解
User user = new User(id: 1, name: "d", password: "d");

这行代码的执行过程:

  1. new关键字:告诉JVM要创建一个新对象
  1. User(...):调用User类的构造函数
  1. 参数传递:将id=1, name="d", password="d"传给构造函数
  1. 对象创建:JVM在内存中分配空间,创建User对象
  1. 引用赋值:将新创建的对象地址赋给user变量
4. 如果无法调用的情况

如果User类是这样定义的:

class User {  // 没有public,只有包内可见
    // ...
}
5. 总结

UserTest能调用User类创建对象,是因为:

  • 可见性:User类是public的
  • 包关系:两个类在同一个包下
  • 构造函数:User类的构造函数是public的
  • 语法正确:使用了正确的new关键字和构造函数调用

网站公告

今日签到

点亮在社区的每一天
去签到