Java面向对象(一)

1.this:指当前对象,可以让类中的一个方法访问该类里的另一个方法或实例变量,也可以使用它访问被同名局部变量覆盖的成员    变量。

2.个数可变的形参:在形参类型后增加三个点,例如void test(int a, string... books)。个数可变的形参只能处于形参列表的最后,且一个方法中最多只能包含一个个数可变的形参。个数可变的形参本质就是一个数组类型的形参,如void test(int a, string[] books),因此调用这样的方法时,该个数可变的形参既可以传入多个参数,也可以传入一个数组。

3.成员变量和局部变量:成员变量包括实例变量和类变量,局部变量包括形参、方法局部变量和代码块局部变量。成员变量的作用域是整个类内有效,形参作用域是整个方法,方法局部变量是自定义处至方法结束,代码块是定义处至代码块结束。

4.成员变量可以在类的加载阶段或创建实例时进行默认初始化,规则与数组动态初始化时赋值规则相同;局部变量除了形参之外都必须显示初始化,即先指定初始值才可以访问它们(比如做计算或者输出值)。

5.同一个类里,成员变量不能同名,即使是一个是类变量一个是实例变量也不行,同理同一个方法内方法局部变量、形参、代码块局部变量互相之间也不能同名,分别在不同方法里可以同名。但是允许局部变量和成员变量同名,详见this,

6.访问控制符:public对所有类可见;protected对本包和所有子类可见;default对本包可见;private对当前类可见。

7.package语句:位于包中的类,在文件系统中也必须有与包名层次相同的目录结构。在执行java命令时要使用包名加类名的组合,虚拟机会按照CLASSPATH指定的路径下查找是否包含包路径,并在包路径下查找是否包含类.class文件。访问允许下,同一个包下的类可以自由访问,无需包前缀;不同包即使是子包也要使用包名加类名的组合。

8.import语句可以导入指定类,也可以导入包下的所有类,省略写包名;import static可以导入类变量和类方法,省略类名。

9.继承:方法重写遵循两同两小一大的规则,两同即方法名、形参列表相同;两小指子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;一大指子类方法的访问权限应比弗雷方法的访问权限更大或相等。

10.继承:子类构造器调用父类构造器的三种情况:子类构造器执行体第一行使用super显式调用父类构造器,系统将执行对应的父类构造器;子类构造器执行体第一行代码使用this显式调用本类中重载的构造器,系统将执行对应的本类中的另一个构造器,在执行本类另一个构造器时会显式或隐式调用父类构造器;子类构造器执行体既没有super也没有this,系统将在执行子类构造器之前调用父类无参构造器。

11多态:引用变量有编译时类型和运行时类型之分;强制转换只能在具有继承关系的两个编译类型之间进行;instanceof的两个操作数的编译类型必须相等或具有父子继承关系。

12.系统在类初始化阶段执行静态初始化块时先上溯到Object类,执行其静态初始化块,最后执行当前类的静态初始块快。

13,创建一个Java对象时会先上溯到Object类,执行其初始化块和构造器,最后执行当前类的初始化块和构造器。上溯过程按第10记的规则。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值