2021-04-11面向对象基础的读书笔记

针对https://www.liaoxuefeng.com/wiki/1252599548343744/1260451488854880这一部分内容进行简单的总结,希望自己能温故而知新。

文档:面向对象基础的读书笔记.note

链接:http://note.youdao.com/noteshare?id=6bbc460a28a23e4eb84fea5a52f8fe35&sub=F2F80AF5CAC34CB4B8EB57E6CF6BDBA3

1.什么是面向对象编程?

    首先要理解什么是类class、实例instance,和它们之间的关系,以及如何定义类和创建实例,实例创建之后是互相独立的。

2.什么是方法?

2.1方法的定义:

修饰符 方法返回类型 方法名(方法参数列表) {

    若干方法语句;

    return 方法返回值;

}

讲方法(method)前,先讲讲字段(field)。为了保护数据的封装和逻辑完整,外部代码(不在该类和实例里的代码)是不允许直接访问field的,可以用private修饰词修饰field。

外部代码要访问private修饰的field,可以创建实例,通过调用实例的public方法来修改field。

这样通过方法间接修改filed,可以在方法内先检查传入的参数、修改的值是否符合逻辑。

2.2方法参数(列表):

()里可以放0到任意个参数,参数要一一对应,类比形参,用来接收那些传递给方法的变量。

可变参数: 类型...  相当于是一个数组类型。

2.3.参数绑定: 基本类型的参数绑定,引用类型的参数绑定(难点)。

3.构造方法:

在创建对象实例时把内部字段全部初始化为合适的值。代码实例,默认构造、带参构造,多级构造。

4.什么是方法重载overload?

方法名相同,各自的参数不同,通常返回值类型相同的一系列方法。

overload的目的是让使用者更容易记住功能类似的方法。

5.继承:

实现代码复用机制,在此基础上添加额外代码。

继承树:student→person→object;

继承特点:父类的private方法和字段,子类是无法访问的,所以父类的修饰词要改用protected。

在Java中,任何class的构造方法,第一行语句必须是调用父类的构造方法。如果没有明确地调用父类的构造方法,编译器会帮我们自动加一句super();

super()表示调用默认构造方法。

子类不会继承任何父类的构造方法。

seal permits:阻止继承,限定可以继承的class。

向上转型:

Person p = new Student();

为什么可以用引用类型为Person的变量指向Student类型的实例?

因为Person类的所有字段和方法都能从Student类中一一对应。符合小推大原则。

向下转型:只有引用类型为父类的变量,它实际指向子类实例的情况,向下转型才能成功,只有先向上转型,才能向下转型成功。

instanceof可以判断一个变量所指向的实例是否是指定类型,或者这个类型的子类。

6.多态:

覆写:重写继承方法的中括号内的执行语句。

Java的实例方法调用是基于运行时的实际类型的动态调用,而非变量的声明类型。

这个非常重要的特性在面向对象编程中称之为多态。

多态是指,针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。

7.抽象类:

方法用abstract修饰,方法内无具体执行代码的class。

abstract class Person {

    public abstract void run();

}

面向抽象编程的本质就是:

上层代码只定义规范(例如:abstract class Person);

不需要子类就可以实现业务逻辑(正常编译);

具体的业务逻辑由不同的子类实现,调用者并不关心。

8.接口:

抽象类,没有字段,只有方法,而且全是抽象方法。

用interface进行声明;

用implements关键字来给一个class实现interface;

接口之间可以继承,用extends;

10.静态

静态字段:static field,只有一个共享空间,所有实例都可访问;实例字段在每个实例都有自己的空间,实例字段互不影响。用类名.静态字段访问。

    静态方法:调用实例方法必须通过一个实例变量,而调用静态方法则不需要实例变量,通过类名就可以调用。因为静态方法属于class而不属于实例,因此,静态方法内部,无法访问this变量,也无法访问实例字段。

11.包:

package,java的namespace,一个类总属于某个包,只要包不同,就算类名一样,这两个类也是可以区分的。

位于同一个包的类,可以访问包作用域的字段和方法。不用public、protected、private修饰的字段和方法就是包作用域。

import:引用其他包里的类,在使用import前,你需要知道:

        Java编译器最终编译出的.class文件只使用完整类名,因此,在代码中,当编译器遇到一个class名称时:

       1. 如果是完整类名,就直接根据完整类名查找这个class;

       2. 如果是简单类名,按下面的顺序依次查找:

                查找当前package是否存在这个class;

                查找import的包是否包含这个class;

                查找java.lang包是否包含这个class。

       如果按照上面的规则还无法确定类名,则编译报错。

12.作用域:

public:

定义为public的class、interface可以被其他任何类访问;

定义为public的field、method可以被其他类访问,前提是首先有访问class的权限;

private:

private访问权限被限定在class的内部,而且与方法声明顺序无关。推荐把private方法放到后面,因为public方法定义了类对外提供的功能,阅读代码的时候,应该先关注public方法

protected:

定义为protected的字段和方法可以被子类访问,以及子类的子类;

package:

包作用域是指一个类允许访问同一个package的没有public、private修饰的class,以及没有public、protected、private修饰的字段和方法。

一个.java文件只能包含一个public类,但可以包含多个非public类。如果有public类,文件名必须和public类的名字相同。

13.classpath:

Java程序是.java是源码文件,经过编译后是.class文件(字节码),.class文件才可以被JVM运行。

JVM编译时需要用到的环境变量,它用来指示JVM如何找到.class文件。

14.jar包:

把package组织的目录层级,以及各个目录下的所有文件(包括.class文件和其他文件)都打成一个jar文件,也就是一个带目录的、装的都是packasge的(一堆class)压缩包。

15.模块module:

jar包存放class,却不对class之间的依赖置之不理,如果a.jar必须依赖b.jar才能运行,这时候就需要用到模块,模块是解决依赖关系的class容器。

16.内部类:

定义在一个类的内部的一个类。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容