对象创建与引用

知识点:对象的创建与使用、对象的引用传递、访问控制权限

一、对象的创建与使用

1.1 创建对象

Java 中使用 new 关键字创建对象。

格式:

复制代码
类名 对象名 = new 类名();

示例:

复制代码
public class Student {
    String name;
    int age;

    public void introduce() {
        System.out.println("我叫" + name + ",今年" + age + "岁");
    }
}

public class TestStudent {
    public static void main(String[] args) {
        // 创建对象
        Student s1 = new Student();
    }
}

1.2 给属性赋值

使用 . 访问对象属性。

格式:

复制代码
对象名.属性名 = 值;

示例:

复制代码
s1.name = "张三";
s1.age = 18;

1.3 调用对象方法

格式:

复制代码
对象名.方法名();

示例:

复制代码
s1.introduce();

1.4 完整示例

复制代码
public class Student {
    String name;
    int age;

    public void introduce() {
        System.out.println("我叫" + name + ",今年" + age + "岁");
    }
}

public class TestStudent {
    public static void main(String[]  args) {
        Student s1 = new Student();

        s1.name = "张三";
        s1.age = 18;
        s1.introduce();
    }
}

输出:

复制代码
我叫张三,今年18岁

二、对象的引用传递

2.1 引用类型的理解

Java 中,类、数组、接口等都是引用类型。

用类创建出来的对象变量,保存的不是对象本身,而是对象的地址 / 引用。

复制代码
Student s1 = new Student();

可以简单理解为:

  • new Student():在堆内存中创建对象;
  • s1:保存对象的地址,通过地址找到对象。

2.2 引用传递示例

复制代码
public class Student {
    String name;
    int age;
}

public class TestReference {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name = "张三";
        s1.age = 18;

        Student s2 = s1;
        s2.name = "李四";

        System.out.println(s1.name); // 李四
    }
}

输出结果:

复制代码
李四

原因:s2 = s1 把引用地址复制给了 s2,两个变量指向同一对象。

2.3 方法中的引用传递

复制代码
public class Student {
    String name;
    int age;
}

public class TestReference2 {
    public static void main(String[] args) {
        Student s = new Student();
        s.name = "王五";

        changeName(s);
        System.out(s.name); // 赵六
    }

    public static void changeName(Student stu) {
        stu.name = "赵六";
    }
}

注意:引用传递中,方法改变的是对象属性,不是外部变量本身的地址。


三、访问控制权限

Java 提供访问修饰符来控制类、属性和方法的访问权限。

3.1 四种权限

权限 含义 说明
public 公共的 任何地方都能访问
protected 受保护的 同包、子类可以访问
不写 / 空 包访问权限 同包可以访问
private 私有的 只能在本类内部访问

3.2 权限从小到大

复制代码
private < 不写 < protected < public

3.3 示例

复制代码
public class Student {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public class TestPermission {
    public static void main(String[] args) {
        Student s = new Student();

        s.setName("张三");
        System.out.println(s.getName());

        // s.name = "李四"; // 错误:private不能直接访问
    }
}

3.4 类、属性、方法使用权限的建议

成员 建议权限 理由
类 public 方便其他类使用
属性 private 封装数据,避免直接修改
方法 public 对外提供功能入口

本章小结

  1. 对象创建 :new 类名() 创建对象,用 . 访问属性和方法。
  2. 引用传递:对象变量保存地址,多个引用可指向同一对象。
  3. 访问权限 :private、包访问、protected、public,权限从小到大。
  4. 封装常用写法 :属性 private,对外提供 getXxx() 和 setXxx()。
相关推荐
yixun_gdas19 分钟前
政企网站错敏巡查:错敏都藏在哪些位置?
开发语言·前端·javascript·内容运营
小羊没烦恼!22 分钟前
.NET 11 Runtime Async 详解
java·运维·开发语言·javascript·python
Дерек的学习记录23 分钟前
Unreal Engine 5:开关门实现和流程控制
开发语言·学习·ue5
哇嘎呀25 分钟前
RHCSA题目
java·服务器·前端
SL_staff38 分钟前
企业知识平台细粒度权限设计实践:从成员组、文档库到操作级的三层防线
java·开源·全栈
周厉1 小时前
ERP系统全景解析:核心模块与业务逻辑框架
java·服务器·前端
开开心心就好1 小时前
课堂随机点名工具,绿色版免安装双击即用
java·服务器·前端·ffmpeg·音视频·perl·symfony
code2cat1 小时前
Java高级篇之Socket:从建立连接到完整收发一条消息
java·开发语言
凯瑟琳.奥古斯特2 小时前
OCR文字检测算法对比解析
开发语言·python·职场和发展
PD我是你的真爱粉2 小时前
成熟Agent系统设计深度研究报告
java·大数据·人工智能