java 基础随笔

Java是完全面向对象的语言。Java通过虚拟机的运行机制.

语言类型都具有的

变量

数组

表达式

控制结构

 

一个类具有

方法与数据成员

 

封装与接口

一个类要将方法与数据成员封装起来,并提供接口给外部调用(通常是方法)

 

接口(interface)

interface里面的方法默认都是public

一旦在类中实施了某个interface,必须在该类中定义interface的所有方法

 

思考:我们使用了interface,但这个interface并没有减少我们定义类时的工作量。我们依然要像之前一样,具体的编写类。我们甚至于要更加小心,不能违反了interface的规定。既然如此,我们为什么要使用interface呢?

 

基本类型

我们将int, float, double, boolean等称为基本类型(primitive type),也就是特殊的类。我们可以将一个整数理解称为一个int类型的对象。int类型可以有赋值、加法、减法等操作接口。普通类型可以视作对基本类型的拓展。我们已经见过了基本类型作为数据成员、方法的参数、方法的返回值和方法内部的自动变量。自然的,普通类型的对象,比如Battery和Torch类的对象,也都可以用于这些地方。

 

组合与继承

 

组合是重复调用对象的功能接口

继承可以重复利用已有的类的定义

 

衍生类与基类

Super在衍生类中可以代表基类


super和this类似,也是隐式参数。我们在类定义的不同层次时,this会有不同的含义。要小心的使用this和super关键字。

 

衍生类对象的外部接口最终由基类对象的public成员和衍生层的public成员共同构成。如果基类public成员和衍生层的public成员同名,Java接口中呈现的究竟是哪一个呢?

我们在构造方法与方法重载中已经提到,Java是同时通过方法名和参数列表来判断所要调用的方法的。方法是由方法名和参数列表共同决定的。上述问题中,如果只是方法名相同,而参数列表不同,那么两个方法会同时呈现到接口,不会给我们造成困扰。外部调用时,Java会根据提供的参数,来决定使用哪个方法 (方法重载)。

如果方法名和参数列表都相同呢? 在衍生层时,我们还可以通过super和this来确定是哪一个方法。而在外部时,我们呈现的只是统一接口,所以无法同时提供两个方法。这种情况下,Java会呈现衍生层的方法,而不是基层的方法。

 

类数据与类方法(static关键字)

类型转换

Java可以对基本类型的变量进行类型转换。不同的基本类型有不同的长度和存储范围。如果我们从一个高精度类型转换到低精度类型,比如从float转换到int,那么我们有可能会损失信息。这样的转换叫做收缩变换(narrowing conversion)。这种情况下,我们需要显示的声明类型转换

 

如果我们从低精度类型转换成高精度类型,则不存在信息损失的顾虑。这样的变换叫做宽松变换(widening conversion)。我们不需要显示的要求类型转换,Java可以自动进行

引用也可以进行类型转换,但是有限制

 

我们可以将一个衍生类引用转换为其基类引用,这叫做向上转换(upcast)或者宽松转换

 

转载于:https://www.cnblogs.com/tookya/p/9517158.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值