关于类和对象的基本区别
我将以我如今的知识来归纳一二一、定义1.类的定义类class就是某类事物其中包含着它这个类的共同特征属性和行为方法。例如学生类的属性名字年龄等方法学习等// 类的定义学生类新手模板 public class Student { // 属性特征 String name; int age; // 方法行为 public void study() { System.out.println(name 正在学习); } }2.对象的定义对象是类的实现例如学生A年龄17学习什么什么这个就是对象。你有一个类就可以创建多个对象。例如同上类对应的public class Test { public static void main(String[] args) { // 创建对象类的具体实例 Student stu new Student(); // 给对象赋值 stu.name 张三; stu.age 18; // 调用对象方法 stu.study(); // 输出张三正在学习 } }二、类与对象的核心特性1.类的特性构造方法对象初始化的灵魂作用创建对象时自动给属性赋值不用写完new再一行行赋值。分类无参构造默认存在、有参构造简化赋值、重载构造适配不同初始化场景补充创建有参构造后无参构造将不复存在得再添加一个无参构造访问控制封装的核心手段核心修饰符private仅本类访问、public全局访问、protected子类 / 同包访问、默认同包访问最佳实践属性私有化private 提供get/set方法加校验逻辑比如给age属性加校验拒绝负数 / 超龄值博客案例对比 “裸属性直接访问” 和 “封装后访问” 的安全性体现面向对象的封装思想。静态成员类级别的共享资源静态属性类变量所有对象共享比如Student.school 北京大学所有学生对象的学校都是这个值修改后全局生效静态方法类方法无需创建对象直接通过类名调用如Math.random()适合工具类如DateUtil注意点静态方法不能直接访问非静态成员因为静态属于类非静态属于对象。内部类类的嵌套设计内部类类的嵌套设计分类成员内部类、局部内部类、匿名内部类高频、静态内部类实战场景匿名内部类简化接口实现如new Runnable(){...}静态内部类解决外部类的逻辑拆分如HashMap.Node。2.对象的特性实例化性对象必须通过new类名()语法创建是类在内存中的具体落地没有实例化的类无法直接提供业务功能。独立性每个对象在堆内存中拥有独立的存储空间修改一个对象的属性值不会影响其他同类型对象体现了实例的 “个体差异”。可操作性对象创建后可通过对象名.属性访问数据、对象名.方法名()调用行为是面向对象编程中直接操作的最小单元。生命周期性对象从new关键字触发创建分配内存、执行构造方法初始化到被引用变量操作最终在无有效引用指向时由 Java 垃圾回收器GC自动回收销毁无需手动释放内存。三、总结类和对象的区别还是非常大的。类是面向对象编程的 “设计蓝图”通过封装、静态成员等特性定义一类事物的通用规则对象是蓝图落地的 “实物”依托实例化、独立性等特性将类的共性规则转化为具体的业务场景。理解二者的核心区别与特性是掌握 Java 面向对象思想的基础。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440836.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!