javaSE基础
2020-06-28 10:26:04 0 举报
AI智能生成
Java基础第一部分
作者其他创作
大纲/内容
分类主题
分支主题
分支主题
Java中的域field
实例域
Java中对象的数据称为实例域,每一个对象对于所有的实例域都有一份自己的拷贝
静态域(也叫类域)
如果将域定义为static,则每个类中只有一个这样的域。
e.g. class Employ{
private static int nextId=1;
private int id; } 每个雇员对象都有一个自己的id域,但这个类的所有实例共享一个nextId域。即使没有一个雇员对象,静态域nextId依然存在,它属于类,不属于任何独立的对象。
e.g. class Employ{
private static int nextId=1;
private int id; } 每个雇员对象都有一个自己的id域,但这个类的所有实例共享一个nextId域。即使没有一个雇员对象,静态域nextId依然存在,它属于类,不属于任何独立的对象。
静态方法
静态方法是不能向对象实施操作的方法。因为静态方法不能操作对象,所以不能在静态方法中访问实例域。但是,静态方法可以访问自身类中的静态变量。
对象与类
一个对象变量并没有实际包含一个对象,而仅仅是引用了一个对象。e.g. Date birthday=new Date();(这里用新构造的对象初始化了birthday变量。当然也可以让这个变量引用一个已存在的对象,此时这两个变量引用同一个对象。
可以显示的将变量设置为null,此时表明这个对象目前还没引用任何对象。如果将一个方法应用于一个值为null的对象上,那就会产生运行时错误。
局部变量不会自动初始化为null,必须通过调用new或设置为null进行初始化。
在一个源文件里,只能有一个公有类,可以有任意数目的非公有类。
pubic String getName()等 类的public方法表示任何类的任何方法都能调用这些方法。
private String name; privatet int age;等private关键字修饰的实例域确保了只有该类的方法才能访问这些实例域,其他类不能读写这些实例域。
构造器
构造器与类同名
每个类可以有一个以上的构造器
构造器可以有0、1、或多个参数
构造器没有返回值
构造器总是伴随new操作一起调用
java允许重载任何方法,而不只是构造器方法。因此,要完整描述一个方法,需要指出方法名和参数类型。这叫做方法的签名。注意: 方法的返回类型不是方法的签名的一部分。也就是说,不能有两个参数类型相同,方法名也相同但返回类型不同的方法。
一个类中没有提供任何构造器时,系统才会提供一个默认的构造器。如果在类中至少提供了一个构造器,但没有提供无参构造器。则在构造对象时不能调用new 类名( )。没有提供参数就会被视为不合法。通常建议在每个类中都加入无参构造器方法。
Java方法参数
按值调用表示方法接收的是调用者提供的值;
Java总是采用按值调用
基本数据类型
方法不能修改基本数据类型的参数
对象引用
Java方法能实现改变对象参数状态的原因是:方法得到的是对象引用的拷贝,对象引用及方法中的其他拷贝同时引用一个对象。
change函数里面的test被初始化为实参testexchange的copy,这是对对象的引用。test和testexchange同时引用的那个TestExchange对象的num值变为了10,方法结束后,参数变量test不再使用。而testexchange继续引用那个num值为10的TestExchange对象。
代码示例
代码示例
按引用调用表示方法接收的是调用者提供的变量地址。
继承
超类和子类
子类拥有比超类更多的功能
调用超类的方法时,使用关键字super
super和this并不一样,super并不是一个对象的引用,不能将super赋给另一个对象变量。他只是一个指示编译器调用超类方法的特殊关键字
在子类中可以增加域,增加方法或覆盖超类的方法,但是不能删除继承的任何域和方法
由于子类的构造器不能访问超类的私有域,所以必须利用超类的构造器对这部分私有域进行初始化,可以使用super实现对超类构造器的调用。super调用构造器的语句必须是子类构造器的第一条语句。
如果子类的构造器没有显示地调用超类的构造器看,则自动调用超类的默认构造器。如果超类没有不带参数的构造器,且在子类的构造器中又没有显示调用超类的其他构造器,则Java编译器报告错误。
this和super
this
引用隐式参数
调用该类的其他构造器
super
调用超类的方法super.functio()
调用超类的构造器super(参数)
多态
一个对象变量可以指示多种实际类型的现象称为多态。在运行时能自动选择调用哪个方法的现象称为动态绑定(虚拟机知道对象变量实际引用的对象类型,因此可以正确调用相应的方法)。
Java方法参数使用:方法不能修改基本数据类型的参数;方法可以改变对象参数的状态;方法不能让对象参数引用一个新的对象。
收藏
0 条评论
下一页