9/30课堂笔记及动手动脑
类的定义:
1、定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性。
2、对象则是类的具体化,是类的实例。
3、类通过派生可以有子类,同样也可以有父类,形成层次结构
* * * * *同一个类模板,生产的不同对象之间有无关联?没有关联又有关系
* 相当于复制了一份副本。
* 而凡是类变量里面加static,static在类加载中就已经实例化,这时候只要建立类,static对象已经生成(创造时机)。因此所有的对象只能使用一个静态变量。
【这就说明了为什么main方法只能出现在一个类当中】
public/private class 类名
{
public/private 数据类型 变量名;
public/private 数据类型 方法名(参数列表){
}
}
java中有两种类:
----抽象类只有方法名没有方法体,只能被继承,不能被实例化。
作用 :用于制定规则,规范
----普通类
在Java中,可以通过组合一私有字段和一对get/set方法来定义接口
public class ClassAndObjectTest { public static void main(String[] args) { //创建类的实例,定义一个对象变量引用这一实例 MyClass obj = new MyClass(); /** *前面是类名 *对象obj *new在当前的系统空间中开辟一个内存空间 *后面MyClass是调用构造方法,为对象进行初始化 */
//通过对象变量调用类的公有方法 obj.myMethod("Hello"); //给属性赋值 obj.setValue(100); //输出属性的当前值 System.out.println(obj.getValue()); //直接访问对象公有字段 obj.Information = "Information"; //输出对象公有字段的当前值 System.out.println(obj.Information); } }
========================================================================
♦ ♦ ♦ 需要定义一个变量
♦ ♦ ♦ 然后“创建(new)一个对象,赋值给对象变量
♦ ♦ ♦ 现在就可以通过对象变量使用对象,主要方式有:
1、直接调用类的方法
2、存取类的字段
=========================================
“引用”一个对象的变量成为“引用类型”的变量,有时简称“对象变量”。要用equals进行比较,用=号比较的是内存的地址
诸如int,float之类的变量称为“原始数据类型”的变量。
=========================================
变量与内存分配
MyClass obj=null;
👉 当声明一个对象类型的变量时,实际上并没有创建一个变量,此变量=null。
👉 定义一个原始类型的变量时,会马上给其分配内存。
👉 在定义变量时,Java要求必须显式初始化变量。
当对象不再使用时,jvm会回收对象所占用的内存。“垃圾回收”。
可以使用final定义一个“常量对象”变量。
遗留问题:
私有方法无法覆盖
方法覆盖只是针对于“实例方法”,“静态方法覆盖”没有意义。()
1、方法覆盖需要和多态机制联合起来去使用才有意义。
没有多态机制的话,方法覆盖可有可无。
没有多态机制的话,子类完全可以定义一个全新的方法。
2、静态方法存在方法覆盖吗?
静态方法和对象无关
虽然使用引用.来调用,但实际运行时还是继承了类的方法
方法覆盖和多态不能分开。而静态方法的执行不需要对象。所以,一般情况下,我们会说静态方法”不存在“方法覆盖。不探讨静态方法的覆盖。
总结:
私有方法不能覆盖
静态方法不谈覆盖
在方法覆盖中,关于方法的返回值类型。
什么条件满足之后,会构成方法的覆盖呢?
1、发生在继承关系的两个类之间
2、父类中的方法和子类重写之后的方法:
具有相同的方法名、相同的形式参数列表、相同的返回值类型。
学习了多态机制后,相同的返回值类型可以修改吗?
对于返回值类型是基本数据类型,不可以修改,必须一致
对于返回值类型是引用数据类型,大转小可以,小转大不可以。(但在实际开发中,一般不这样写)
课后程序运行结果
本文作者:TranquilTimber
本文链接:https://www.cnblogs.com/gbrr/p/16745210.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步