目录
本系列带你从零基础到精通JavaSE,Let's GO!!!🚀🚀🚀
一、static静态代码📚
可用于修饰的地方📕
static修饰属性:静态变量(或类变量)📕
静态变量内存解析💡💡编辑
static修饰方法:静态方法、类方法📕
static的注意点:🌊🌊
使用举例🚀🚀
二、代码块(初始化块)📚
静态代码块💡
非静态代码块💡
复习🚀🚀
三、final📚
四、interface接口📚
使用说明🖊🖊
举例🚀🚀
Java8中关于接口的新规范📕
面试题:抽象类和接口的异同💡💡
五、内部类📚
初始内部类📕
实操成员内部类🚀🚀
小结💡
总结
前言
本系列带你从零基础到精通JavaSE,Let's GO!!!🚀🚀🚀
前面我们已经讲述了面向对象三大特性:封装性、继承性、多态性,讲述了面向对象重要组成部分,今天讲的是面向对象(下),关于static,final,interface,abstart等重要关键字。
提示:以下是本篇文章正文内容
属性,是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量)💡🖊
static修饰属性的其他说明:
静态属性举例:System.out; Math.PI;
如何判定属性和方法应该使用static关键字:
- 关于属性。属性是可以被多个对象所共享的,不会随着对象的不同而不同的。类中的常量也常常声明为static
- 关于方法。操作静态属性的方法,通常设置为static的。具类中的方法,习惯上声明为static的。 比如:Math、Arrays、Collections
举例一:Arrays、Math、Collections等工具类
举例二:单例模式
举例三:
class Circle{private double radius;private int id;//自动赋值public Circle(){id = init++;total++;}public Circle(double radius){this();
// id = init++;
// total++;this.radius = radius;}private static int total;//记录创建的圆的个数private static int init = 1001;//static声明的属性被所对象所共享public double findArea(){return 3.14 * radius * radius;}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}public int getId() {return id;}public static int getTotal() {return total;}}
注意:实例化子类对象时,涉及到父类、子类中静态代码块、非静态代码块、构造器的加载顺序:
由父及子,静态先行。
执行的先后顺序:① - ② / ⑤ - ③ - ④
final:最终的可以用来修饰:类、方法、变量
class Computer{public void transferData(USB usb){//USB usb = new Flash();usb.start();System.out.println("具体传输数据的细节");usb.stop();}}interface USB{//常量:定义了长、宽、最大最小的传输速度等void start();void stop();}class Flash implements USB{@Overridepublic void start() {System.out.println("U盘开启工作");}@Overridepublic void stop() {System.out.println("U盘结束工作");}}class Printer implements USB{@Overridepublic void start() {System.out.println("打印机开启工作");}@Overridepublic void stop() {System.out.println("打印机结束工作");}}
public void myMethod(){method3();//调用自己定义的重写的方法hod3();//调用的是父类中声明的//调用接口中的默认方法hod3();hod3();}
定义:Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类.
内部类的分类:
成员内部类(静态、非静态 ) vs 局部内部类(方法内、代码块内、构造器内)
理解
成员内部类的理解:
//创建静态的Dog内部类的实例(静态的成员内部类):
Person.Dog dog = new Person.Dog();//创建非静态的Bird内部类的实例(非静态的成员内部类):
//Person.Bird bird = new Person.Bird();//错误的
Person p = new Person();
Person.Bird bird = p.new Bird();//如何在成员内部类中调用外部类的结构?
class Person{String name = "小明";
public void eat(){
}
//非静态成员内部类class Bird{String name = "杜鹃";public void display(String name){System.out.println(name);//方法的形参System.out.println(this.name);//内部类的属性System.out.println(Person.this.name);//外部类的属性//Person.this.eat();}}
}//局部内部类的使用:
//返回一个实现了Comparable接口的类的对象public Comparable getComparable(){//创建一个实现了Comparable接口的类:局部内部类//方式一:
// class MyComparable implements Comparable{
//
// @Override
// public int compareTo(Object o) {
// return 0;
// }
//
// }
//
// return new MyComparable();//方式二:return new Comparable(){@Overridepublic int compareTo(Object o) {return 0;}};}
以上就是本次文章的内容:static,interface,abstract,代码块,final等关键字的使用和特性的讲解。到这里Java类的内容也就讲完了,零基础到精通Java类的使用看着三篇就够了,下期讲的是Java异常类,欢迎大家订阅专栏。
本文发布于:2024-02-01 04:00:42,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170673124533701.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |