《疯狂java讲义》读书笔记(一):面向对象

《疯狂java讲义》读书笔记(一):面向对象

1.static修饰的成员不能访问没有static修饰的成员。

2.构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或者使用void声明构造器没有返回值,编译时虽然不会出错,但是Java会把它当作方法来处理。

3.如果在static修饰的方法中使用this关键字,则这个关键字就无法指向合适的对象,所以static修饰的方法中不能使用this引用。

4.关于关于引用变量 P110

5.普通方法访问其它方法、成员变量的时候不需要使用this前缀,但是如果方法有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,那么就得用this前缀。this除了可以在方法中引用调用该方法的对象还可以在构造器中引用该构造器正在初始化的对象。

6.方法的参数传递机制

7.在JDK1.5之后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。

public void test(int a,String... books),当然也可以采用数组形参来定义方法,效果是一样的。

public void test(int a,String[] books),数组形式的形参可以处于形参列表的任意位置,但个数个边的形参只能处于形参列表的最后,也就是说,一个方法里面最多只能有一个长度可变的形参。

8.方法重载和方法重写

重载:同一个类里定义多个同名方法,只要形参列表不同就行,如果同一个类里包含了两个及以上的方法名相同,但形参列表不同,那么就是重载。方法的返回值和修饰符和重载没关系。

扫描二维码关注公众号,回复: 8736632 查看本文章

多说一句,构造器也可以重载,如果在一个类的构造器A中想调用构造器B,由于构造器不能直接被调用,构造器必须得new,一旦new就说明又得创建一个对象。但是如果用this关键字来调用相应的构造器,就不需要创建新对象了。this调用另一个重载的构造器只能在构造器中使用,而且必须作为构造器执行体的第一条语句。

这里区分一个问题,就是为什么方法的返回值类型不能用于区分重载?举个例子,int test()和void test(),代码中既可以调用int res=test()识别返回值类型为int的test方法也可以调用的时候省略方法的返回值,当省略的时候,只写一行test(),我们是分辨不出来调用的哪个方法的。所以不行。

重写:这个其实就涉及到继承了。子类B继承父类A,如果子类B包含和父类A同名的方法,那么就是重写。重写必须得遵循:方法名相同、形参列表相同,子类方法的返回值类型应该比父类的更小或相等,子类方法声明抛出的异常类应比父类的更小或相等,子类方法的访问权限应该比父类方法的访问权限更大或者相等。

9.成员变量和局部变量

​ 这个概念距离我学Java感觉好久了,最近刷题有时候也很懵。在书上看到了,mark下。

​ 成员变量指的是在类里定义的变量(实例变量和类变量【区别是用不用static修饰】),局部变量是方法里定义变量(形参、在方法内定义的变量、在代码块中定义的变量)。这样说应该就比较容易明白了。

​ 成员变量不需要显示的初始化,只要为一个类定义了类变量或实例变量,系统就会在这个类的准备阶段或者创建该实例时默认初始化,成员变量默认初始化时的赋值规则和数组动态初始化时数组元素的赋值规则是一样的。但是局部变量不是!系统不会给你自动赋值的,这个工作需要自己做,否则就会出bug。

10.3个访问控制符和四个访问控制级别

​ 控制符:private、protected和public。

​ private:只能在当前类的内部被访问。

​ protected:既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。

​ default:同一个类中和同一个包中都可以被访问。

​ public:被所有类访问。

11.第八条说到重写的时候,提到了继承,子类继承父类,new的时候不免又涉及构造器。这里需要强调的是,不管是否使用super调用来执行父类构造器的初始化代码,子类构造器总会调用父类的构造器一次。

  • 子类构造器执行体的第一行使用了super显式调用父类构造器,系统将根据super调用里传入的实参列表调用父类对应的构造器。
  • 子类构造器执行体的第一行代码使用this显示调用本类中的重载构造器,系统将根据this调用里传入的实参列表调用本类的另一个构造器,执行本类中另一个构造器时即会调用父类构造器。
  • 子类构造器里面没有super也没有this,那么在执行子类构造器之前,隐式调用父类无参数的构造器。
发布了58 篇原创文章 · 获赞 5 · 访问量 6279

猜你喜欢

转载自blog.csdn.net/weixin_40992982/article/details/103948263
今日推荐