java 调用expect_Java学习笔记之理论

比较运算

字符可以比较大小(用它们的 ascii 码,化为整数)

小心浮点数的相等比较

instanceof 也是一个比较运算,用来判断一个对象是否属于某个类

==运算中,对于基本类型比较的是 "内容",而对于引用类型,比较的是地址

基本数据类型

整数型:byte、short、int、long

浮点型:float、double

字符型:char

逻辑性:boolean

浮点型的值,如果没有特别指明,默认是 double 型的。

整数型的值,默认 int 型的。

多态:同一行为的多种不同表达,或者同一行为的多种不同实现就叫多态。

包:从逻辑上讲,包是一组相关类的集合,从物理上讲,同包即同目录。

类成员的访问控制

de7cbaa35d555e741169bbcc0b1554a7.png

构造方法

类有一个特殊的成员方法叫做构造方法,它的作用是创建对象并初始化成员变量。

在创建对象时,会自动调用类的构造方法。

构造方法必须与该类具有相同的名字,并且没有方法的返回类型。

构造方法一般都应用 public 类型来说明,这样才能在程序任意的位置创建类的实例--对象。

每个类至少有一个构造方法,如果不写一个构造方法,Java 编程语言将提供一个默认的,该方法没有参数,而且方法体为空。

如果一个类中已经定义了构造方法,则系统不再提供默认的构造方法。

析构方法

析构方法 finalize 的功能是:当对象被从内存中删除时,该成员方法将会被自动调用。

当调用析构方法的时候,并不会引起该对象实例从内存中删除,而是不会起到任何作用。

形参: 就是形式参数的意思。是在定义方法名的时候使用的参数,用来表示方法接收的参数类型,在调用该方法时传入。

实参: 就是实际参数的意思。是在调用方法时传递给该方法的实际参数。

形参和实参基本规则:

1、形参和实参的类型必须要一致,或者要符合隐含转换规则。

2、形参类型不是引用类型时,在调用该方法时,是按值传递的。在该方法运行时,形参和实参是不同的变量,它们在内存中位不同的位置,形参将实参的值复制一份,在该方法运行结束的时候形参被释放,而实参内容不会改变。

3、形参类型是引用类型时,在调用该方法时,是按引用传递的,运行时,传给方法的是实参的地址,在方法体内部使用的也是实参的地址,即使用的就是实参本身对应的内存空间,所以在函数体内部可以改变实参的值。

按值传递:传递的是值的拷贝,也就是说传递后就互不相关了。

按引用传递:传递的是值的引用,也就是说传递前和传递后都指向同一个应用(也就是同一块内存空间)。

注意:

按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。

在 Java 中 只有基本类型和引用类型。

String str = "test";  -------值传递。

强制类型转换

把某种类型强制转换成另外一种类型就叫做强制类型转换。

注意:强制类型转换只能用在原本就是某个类型,但是被表示成了另外一种类型的时候,可以把它强制转换回来。

强制类型转换并不能在任意的类型间进行转换。

自动包装和解包

自动包装:就是把基础数据类型自动封装并转换成对应的包装类的对象。

自动解包:就是把包装类的对象自动解包并转换成对应的基础数据类型。

继承

初始化子类必须先初始化父类。

构造方法不能被继承。

关键字 super

关键字 super 可被用来引用该类的父类,它被用来引用父类的成员变量或方法。

1、点取父类中被子类隐藏了的数据成员。

2、点取已经覆盖了的方法。

3、作为方法名表示父类构造方法。

无论是 super 还是 this ,都必须放到构造方法第一行。

方法覆盖

在类继承中,子类可以修改从父类继承来的行为,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的:名称、返回类型、参数列表。

如:父类 A test()方法,子类B test()方法。  A ab = new B();   ab.test();  //调用的是子类的 test 方法

注意:new 谁就调用谁的方法。

方法覆盖规则

1、覆盖方法的返回类型、方法名称、参数列表必须与它所覆盖的方法相同。

2、覆盖方法不能比它所覆盖的方法访问性差(即访问权限不允许缩小)。

3、覆盖方法不能比它所覆盖的方法抛出更多的异常。

方法重载

在同一个类中(包含父类),如果出现了方法名称相同,而参数列表不同的情况就叫重载。

参数列表不同情况包括:个数不同、类型不同、顺序不同等。

注意:仅仅参数变了名称不同是不可以的。

注意:跟成员方法一样,构造方法也可以重载。

方法重载规则

1、方法名称必须相同。

2、参数列表不同。(个数不同、或类型不同、或参数排列顺序不同)。

3、方法的返回类型可以相同也可以不相同,仅仅返回类型不同不足以成为方法的重载。

多态

注意:方法没有多态的说法,严格说多态是类的特性。但也有对方法说多态的,方法覆盖称为动态多态,是一个运行时问题,方法重载称为静态多态,是一个编译时的问题。

父类的类型引用变量指向一个子类的对象。 A父类 B子类    A  ab = new B();    ab.某方法(),调用的是 B 子类的方法。

instanceof 运算符

判断某个实例是否属于某个类的类型。一旦确定了变量所引用的对象类型后,可以将对象恢复给对应的子类变量,以获取对象的完整功能。

static 的变量是在类装载的时候就会被初始化。

final修饰符

1、final 标记的类不能被继承

2、final 标记的方法不能被子类重写

3、final 标记的变量(成员变量或局部变量)即为常量,只能赋值一次。

4、final 标记的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显示赋值,然后才能使用。

5、final 标记的局部变量可以只声明不赋值,然后再进行一次性的赋值。

6、final 一般用于标记那些通用性的功能、实现方式或取值不能随意被改变的成分,以避免被误用。

数组

数组是引用类型。

数组一旦被创建,就不能更改数组的长度。

equals 方法

== 进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。

equals 方法只能比较引用类型, == 可以比较引用类型和基本类型。

注意:当 equals 方法进行比较时,对类 File、String、Date 及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。

接口

接口中声明的默认属性都是 public static final

接口中的所有方法都是 public

异常

重写方法需要抛出与原方法所抛出的异常类型一致,或不抛出异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值