Java中的一些细节

这篇博客详细探讨了Java编程中的各种细节,包括equals()方法的作用、属性定义与对象创建、成员方法、方法重载、可变参数、构造器、this关键字的使用、作用域规则、super关键字的运用以及"=="和equals()的区别。通过对这些关键概念的讲解,帮助读者深入理解Java编程的核心要素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Java使用细节

补充:equals()方法作用:用于判断其他的对象是否和该对象相同

一、定义属性(也叫成员变量/字段),创建对象

二、、成员方法

三、方法重载

四、可变参数(参数的个数可变)

五、构造器(constructor)

六、this关键字

七、作用域(局部变量和全局变量)

八、super关键字

九、super关键字和this关键字的比较

十、“==”运算符和“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关键字的比较

区别thissuper
访问属性先访问本类中的属性,本类没有查找父类先访问父类中的属性
调用方法先访问本类中的方法,本类没有查找父类先访问父类中的方法
调用构造器调用本类中的构造器,必须放在构造器的首行调用父类的构造器,必须放在子类构造器的首行
特殊表示当前对象子类中访问父类对象

十、“==”运算符和“equals”方法的对比

1、==运算符:用于基本数据类型时为判断值是否相同,用于引用数据类型时,为判断对象是否相同(即地址是否相同);

2、equals方法:不可以用于基本数据类型,用于引用数据类型时,为判断对象是否相同(即地址是否相同),子类中往往重写该方法,用于判断内容是否相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值