目录
补充:equals()方法作用:用于判断其他的对象是否和该对象相同
Java使用细节
补充:equals()方法作用:用于判断其他的对象是否和该对象相同
语法:该对象.equals(要比较对象);
一、定义属性(也叫成员变量/字段),创建对象
1、属性定义语法:访问修饰符 属性类型 属性名;
2、对象创建语法:
(1)先声明再创建,示例:
Java ja;
ja=new Java();
(2)直接创建
Java ja=new Java();
二、、成员方法
成员方法的定义语法:
public 数据类型 方法名(形参列表){
语句;//方法体
return 返回值;//void数据类型不需要返回值
}
//返回类型可以为任意的数据类型,包括数组和对象
//同一个类中方法可以直接调用:方法名(形参列表);
//跨类中的方法需要通过创建对象调用:类名 对象名 = new 类名(); 对象名.方法名(形参列表);
成员方法的使用前,需要先在主方法中创建对象,在进行调用
调用语法示例(以类名为Test,方法名为hello为例,方法中有一个int类型的形参):
Test test = new Test();
test.hello(1);
三、方法重载
Java允许一个类中,多个同名方法存在,但要求形参列表不一致多个同名方法存在,但要求形参列表不一致(方法名必须相同,形参列表(形参个数、或类型、或顺序不同)必须不同,返回类型无要求)
四、可变参数(参数的个数可变)
java允许将同一类中多个同功能但参数个数不同的方法,封装成一个方法
语法:访问修饰符 返回类型 方法名(数据类型…形参名){
}
可变参数的实参可以直接为数组,可变参数可以与其它类型参数一起出现在形参列表,但可变参数要在最后,一个形参列表只能有一个可变参数
五、构造器(constructor)
构造方法/构造器(constructor)主要作用为完成对新对象的初始化
1、基本语法:修饰符 方法名(形参列表){//方法名与类名相同
方法体
}
2、构造器没有返回值
3、方法名和类名必须一致
4、参数列表与成员方法的参数列表的规则相同
5、构造器的调用由系统完成
6、构造器的修饰符可以为默认
一个类中可以有多个构造器,即构造器重载,如果程序员没有定义构造器,系统会自动为类生成一个默认无参构造器,一旦定义了自己的构造器,默认构造器就被覆盖
六、this关键字
this代表当前对象,哪个对象调用,this就指哪个对象
this用于区分当前类的属性和局部变量
this关键字用来访问本类的属性、方法、构造器
基本语法:
1、访问本类中属性的语法:this.属性名;
2、访问成员方法的语法:this.方法名(参数列表);
3、访问构造器的语法:this(参数列表);注意只能在构造器中使用(即只能在构造器中调用另外一个构造器),如果有this访问构造器语法,必须放在第一条,this不能在类定义的外部使用
七、作用域(局部变量和全局变量)
1、局部变量:一般指成员方法中定义的变量,必须赋值后使用,因为没有默认值;
2、全局变量(即属性),作用域为整个类,可以不赋值直接使用,因为有默认值;
3、属性和局部变量可以重名,调用时遵循最近原则;
4、全局变量可以被本类或其它类使用(通过对象调用),局部变量只能在本类中对应的方法中使用
5、全局变量可以加修饰符,局部变量不可以
八、super关键字
super关键字,用于访问父类的属性、方法、构造器。
基本语法:
1、访问父类的属性,不能访问父类的private属性:super.属性名;
2、访问父类的方法,不能访问父类的private方法:super.方法名(参数列表);
3、访问父类的构造器:super(参数列表);
注:访问父类的构造器时,只能放在构造器的第一句。
super的一些细节:
1、假设有一个say方法(属性访问相同),想要访问,有三种访问方式:
(1)直接访问:say(); 先查找本类,没有查找父类
(2)使用this访问:this.say(); 先查找本类,没有查找父类
(3)使用super访问:super.say(); 直接查找父类
2、当子类和父类中的成员(成员指属性和方法)重名时,为了访问父类中的,只能使用super进行访问,如果没有重名,上面的三种访问方式效果相同;
3、super也可以访问父类的父类,如果其上级类(父类、父类的父类)有同名的成员,使用super时,遵循就近原则。
九、super关键字和this关键字的比较
区别 | this | super |
访问属性 | 先访问本类中的属性,本类没有查找父类 | 先访问父类中的属性 |
调用方法 | 先访问本类中的方法,本类没有查找父类 | 先访问父类中的方法 |
调用构造器 | 调用本类中的构造器,必须放在构造器的首行 | 调用父类的构造器,必须放在子类构造器的首行 |
特殊 | 表示当前对象 | 子类中访问父类对象 |
十、“==”运算符和“equals”方法的对比
1、==运算符:用于基本数据类型时为判断值是否相同,用于引用数据类型时,为判断对象是否相同(即地址是否相同);
2、equals方法:不可以用于基本数据类型,用于引用数据类型时,为判断对象是否相同(即地址是否相同),子类中往往重写该方法,用于判断内容是否相同