自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 接口与抽象类之间的对比

抽象类被继承,接口被实现,接口与接口之间是多继承关系。不同:抽象类一定有构造器,接口一定没有构造器。共性:都可以声明抽象方法。

2023-07-19 20:56:53 32

原创 interface关键字

(3)公共的默认的方法:其中public 可以省略,建议保留,但是default不能省略。(4)公共的静态的方法:其中public 可以省略,建议保留,但是static不能省略。除此之外,接口中没有构造器,没有初始化块,因为接口中没有成员变量需要动态初始化。理解:接口是从多个相似类中抽象出来的规范,不需要提供具体实现。(1)公共的静态的常量:其中。(2)公共的抽象的方法:其中。

2023-07-19 20:51:45 45

原创 abstract关键字

抽象类,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。抽象类中,也有构造方法,是供子类创建对象时,初始化父类成员变量使用的。理解:子类的构造方法中,有默认的super()或手动的super(实参列表),需要访问父类构造方法。抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

2023-07-19 20:34:38 36

原创 类的加载顺序练习

【代码】类的加载顺序练习。

2023-07-19 19:48:19 36

原创 Java代码块

如果多个重载的构造器有公共代码,并且这些代码都是先于构造器其他代码执行的,那么可以将这部分代码抽取到非静态代码块中,减少冗余代码。不可以对非静态的属性初始化。若有多个非静态的代码块,那么按照从上到下的顺序依次执行。若有多个静态的代码块,那么按照从上到下的顺序依次执行。除了调用非静态的结构外,还可以调用静态的变量或方法。静态代码块随着类的加载而加载,且只执行一次。可以对类的属性、类的声明进行初始化操作。可以对类的属性、类的声明进行初始化操作。静态代码块的执行要先于非静态代码块。

2023-07-18 20:55:31 36 1

原创 ==和equals()的区别

如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是“true”。只能比较引用类型,Object类源码中equals()的作用与“==”相同:比较是否指向同一个对象。:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。

2023-07-13 21:20:02 25 1

原创 面向对象-多态性

对象的多态性对象的多态:在Java中,子类的对象可以替代父类的对象使用。所以,一个引用类型变量可能指向(引用)多种不同类型的对象。

2023-07-13 20:12:05 28 1

原创 this与super

super()或super(实参列表):调用父类的构造器协助当前对象的实例化,只能在构造器首行,只会找直接父类的对应构造器,找不到就报错。this()或this(实参列表):调用另一个构造器协助当前对象的实例化,只能在构造器首行,只会找本类的构造器,找不到就报错。super.成员变量:表示当前对象的某个成员变量,该成员变量在父类中声明的。super.成员方法:表示当前对象的某个成员方法,该成员方法在父类中声明的。this.成员方法:表示当前对象的某个成员方法,完全可以省略this.

2023-07-13 20:02:50 25 1

原创 super调用构造器

③ 我们前面讲过,在构造器的首行可以使用"this(形参列表)",调用本类中重载的构造器, 结合②,结论:在构造器的首行,"this(形参列表)" 和 "super(形参列表)"只能二选一。如果在子类构造器的首行既没有显示调用"this(形参列表)",也没有显式调用"super(形参列表)", ​ 则子类此构造器默认调用"super()",即调用父类中空参的构造器。⑥ 由⑤得到:一个类中声明有n个构造器,最多有n-1个构造器中使用了"this(形参列表)",则剩下的那个一定使用"super(形参列表)"。

2023-07-13 20:01:40 90 1

原创 方法的重写(override)

父类被重写的方法返回值类型为引用类型(比如类),则子类重写方法的返回值类型可以与父类被重写方法的返回值相同, 或是被重写的方法的返回值类型的子类。> 父类被重写的方法返回值类型为基本数据类型,则子类重写方法的返回值类型必须与父类被重写方法的返回值相同。④ 子类重写的方法抛出的异常类型可以与父类被重写的方法抛出的异常类型相同,或是父类被重写的方法抛出的异常类型的子类。② 子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符。子类对父类继承过来的方法进行的覆盖、覆写的操作,就称为方法的重写。

2023-07-13 19:07:04 79 1

原创 面向对象-继承性

自下而上:定义了类B,C,D等,发现B,C,D有类似的属性和方法,则可以考虑将相同的属性和方法进行抽取,封装到类A中,让类B,C,D继承类A。> 自上而下:定义了一个类A,在定义另一个类B时,发现类B的功能与类A相似,则考虑类B继承于类A。- 继承的出现减少了代码冗余,提高了代码的复用性。- 继承的出现为多态的使用提供了前提。- 继承的出现更有利于功能的扩展。

2023-07-13 18:50:30 58 1

原创 面向对象-封装性

> 场景1:私有化(private)类的属性,提供公共(public)的get和set方法,对此属性进行获取或修改。Java规定了四种权限修饰符,分别是:private、缺省、protected、public。我们可以使用这4种权限修饰符来修饰类及类的内部成员,当这些成员被调用时,提现可见性的大小。-> 场景2:将类中不需要对外暴露的方法,设为private私有的。

2023-07-13 18:00:07 26 1

原创 方法的重载(overload)

在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可。一不同:参数列表不同。① 参数个数不同 ② 参数类型不同。满足这样特征的多个方法,彼此之间构成方法的重载。注意:方法的重载与形参的名、权限修饰符、返回值类型都无关。两同:同一个类、方法名相同。2、总结为:"两同一不同"

2023-07-12 19:57:29 29 1

原创 属性与局部变量的不同点

局部变量:随着方法对应的栈帧入栈,局部变量会在栈中分配,随着方法对应的栈帧出栈,局部变量消亡。意味着在使用局部变量之前,必须要进行显式的赋值,否则使用则报错。局部变量:仅限于声明局部变量所在的方法(或构造器、代码块等)中。属性:随着对象的创建而创建,随着对象的消亡而消亡。局部变量:声明在方法、构造器、代码块内部的变量。属性:随着对象的创建,存储在堆空间中。局部变量:存储在方法对应的栈帧中。属性:可以使用权限修饰符进行修饰。属性:声明在类内、方法外的变量。属性:在整个类的内部都是有效的。

2023-07-12 19:28:02 108 1

原创 面向对象的特征

封装、继承、多态、(抽象)

2023-07-12 18:21:15 29 1

原创 冒泡排序和二分法查找

【代码】冒泡排序和二分法查找。

2023-07-11 21:42:29 40

原创 获取随机数

求[a,b]范围内的随机数:(int) (Math.random() * (b - a + 1)) + a;

2023-07-11 20:25:06 34

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除