JavaSE面向对象部分

1.参数传递

参数传递时,对于基本数据类型和引用数据类型,两个是不一样的!
基本数据类型有自己的独立空间,而形参变量里面存放的是具体的引用地址,所以会改变实参的数值。

其实就是栈和堆的缘故!

如果在方法中,重新去申请了新的内存,则引用数据也将不会改变


1.1内存结构栈之区

参数的传递涉及到内存结构的栈区,每次调用一个方法的时候,都会在栈中为该方法分配一个空间,也就是栈帧,栈帧中存放着局部变量(LV Local Variable),操作数栈(OS Operand Stack),动态链接(DL Dynamic Link),方法返回地址(RA Return Adress) 方法调用结束的时候,该空间就被清除。

2.方法的重载

方法的重载主要和参数的个数,类型,以及顺序,和返回值类型没有关系

3.this关键字的基本概念


this关键字一个很重要的应用场景,构造方法,例如:


参数在使用的时候,会遵循就近原则使用局部变量,所以为了能够正确的赋值,会使用this.参数名的形式来表示成员变量,因为是在构造方法中,所以表示的当前正在构造的对象。

3.1this关键字的使用

this关键字为什么一定要在第一行?

因为如果第一行没写的话,编译器会默认的在第一行去使用一个没有参数的this()去初始化,而在第一次初始化后,再在后面出现this()的话,就是第二次初始化,很明显,两次的初始化操作是不支持的。

4.Static关键字

static关键字修饰成员变量时,就是把该成员变量从对象的层级提升到类层级。也就是说这个类中,只有这一个成员变量,这个变量,被所有的对象都是共享。

那个既然当前这个变量被static修饰了,提升到了类的层次,这也就意味着,在使用这个变量的时候,可以用类名.变量名的方式来使用,这样就可以做到在不创建对象的前提下,做到了对这个变量的使用。

4.1Static关键字的使用


新建一个没有任何修饰的Singleton类,再在测试类中,新建两个对象


那么很明显这个时候的我们new出来的两个对象,两个是肯定不相等的。

那么如果我们想要每次去使用这个类去实例化对象的时候,都要拿到同一个对象应该怎么做?

1.很明显,我们在创建这个对象的时候,我们是会去调用这个类的构造方法的,因为构造方法是共有的,所以就可以无限制的去调用它来生成新的对象,所以首先我们要在Singleton类中,对构造方法进行私有化。


私有化构造方法

但是这样虽然让我们在外部不能直接使用构造方法了,但是我们也不能创建新的对象了,所以我们需要在类的内部,就先生成一个对象,同时所以为了能在外面没有对象的前提下使用它,我们需要给它加上static关键字,使他提升到类级别,这样我们就可以在不使用对象的前提下去。为了对这个对象进行规范和一个防护措施,我们再给他加上private关键字进行保护。


静态私有化的创建新对象

为了能正确的得到这个对象,我们此时就需要一个公有的get方法,来返回这个对象


公有的返回方法

但是这个方法的调用,需要对象,我们又没有对象,所以还需要再加上static关键字的修饰。


公有的类层级的返回方法

这样一来,我们在测试类中,只需要去用SingintenTest.getIntace就可以去获得对象, 且生成的都是同一对象。

5.单例设计模式

上述的这种每次一个类只生成一个对象的情况,我们称这个类为单例类其实就是我们熟知的单例设计模式。

单例设计模式有两种

饱汉式:调用方法的时候创建对象

饿汉式:类中直接创建。

6.多态

父类类型的引用指向子类类型的对象。

6.1多态的实际意义:

有两个类继承了同一个类,想要使用一个方法能同时兼容两个类,就需要涉及到使用多态来同时兼容两个类。

例如:有一个shape抽象类,rect类和cirle类同时继承了这个类,他们都继承了shape类的draw方法,想要在一个方法中能同时支持两个类的实现,就应该使用多态。在编译阶段,会使用父类的draw方法,到了运行阶段,又会根据子类的对象,去执行具体的方法。

public void draw(Shape s){

        s.draw();

}


7抽象类和抽象方法

7.1抽象方法的概念

抽象方法是指不能具体实现的方法,并且使用abstract关键字修饰,也就是没有具体的方法体

格式:public abstract void cry();

7.2抽象类的概念

抽象类主要是指不能实例化的类,也就是不能创建对象的类

7.3抽象类和抽象方法的关系


7.4抽象类的实际意义

因为抽象类不能实例化对象,所以他都会被其他类所继承,继承了抽象类后,必须实现它的抽象方法,否则该类也就将变成抽象类,所以抽象类对于子类有强制性和规范性,也就是模板设计模式


8.接口

接口是比抽象类还要抽象的类,它的内部只能有抽象方法(JDK8以后,可以使用public default去修饰方法,JDK9以后可以使用private去修饰方法)。接口也只能有常量接口中也没有构造方法,因为它都不能去new一个对象,所以就没有有构造方法的意义。

8.1 接口的实际意义:

一个类可以是很多个类,但是继承只能支持单继承,所以使用接口,可以来使用多实现来实现这个需求。

8.2接口和抽象类的区别:


9:枚举类型

枚举类型的值必须写在第一行,也都是常量

9.1:枚举的实际意义:

很多事物是可以一一列举出来的,像这些可以直接全部列举出来的,就可以使用枚举类型。

9.2:枚举类的常用方法


9.3:枚举类实现接口的方式:

1.重写一个(常用的重写的方法)

2.在每个对象中重写(也就是每一个枚举对象中,也是在枚举类中)


在每个对象中重写

10:内部类

10.1:普通内部类

普通内部类其实和大多数类一样,只是在创建对象的时候,需要使用外部类对象来进行创建。

10.2静态内部类

静态内部类也就是提升到了类层级的内部类,所以不能访问外部的非静态成员。

10.3局部内部类

局部内部类,是在方法内部的类,所以只能在方法中使用,包括创建对象,如果要去访问外部的局部变量,也必须是final的,不然很有可能访问到的是已经改变的值。

10.4匿名内部类

这是最常用的内部类的方式,是在创建对象的时候,直接在其中对方法进行重写

接口/父类类型 引用变量名 = new 接口/父类类型() { 方法的重写 };

11常见的预制注解

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