Java面向对象——2021-12-15

Java面向对象——2021-12-15

instanceof

Person instanceof Student //判断Person类与Student类之间是否有关系
用于判断能否进行类型转换

子类转换成父类,有可能丢失自己的本来的一些方法!

  1. 父类引用指向子类的对象 Person stu = new Student();
  2. 把子类转换为父类,向上转型 Student s = new Student(); Person p = s;
  3. 把父类转换为子类,向下转型:强制转换
  4. 方便方法的调用,减少重复的代码! 简洁

抽象:封装、继承、多态 抽象类、接口

static

静态变量可直接通过类名访问,且类里只有一个静态变量在内存中,和类一起加载(方法同上)

public class Person{
	{
		//代码块(匿名代码块),和类一块加载,无法主动调用,在构造器之前
	}
	static {
		//静态代码块,最早执行,只执行一次,其他的new一次对象执行一次
	}
}
一般生成随机数
Math.random();
静态导入包后可直接调用
import static java.lang.Math.random;
random();

final修饰的类就不能被继承了

抽象类

abstract修饰的类

//abstract	抽象类;
public abstract class Action{
	//约束	非抽象类的子类必须帮我们实现
	//abstract,抽象方法,只有方法名字,没有方法的实现
	public abstract void doSomething();
}
  1. 不能new这个抽象类,只能靠子类去实现:约束!
  2. 抽象类中可以写普通的方法
  3. 抽象方法必须在抽象类中
    抽象的抽象:约束

接口

接口的本质是契约,定义好了必须遵守

接口中的所有定义其实都是抽象的 public abstract

一个类可以实现接口 implements 接口

实现了接口的类,必须重写接口里的方法

接口可以多实现 implement 接口1,接口2

作用:

  1. 约束
  2. 定义一些方法,让不同的人实现
  3. public abstract //接口中的方法默认为
  4. public static final //接口中的属性默认为
  5. 接口不能被实例化,接口中没有构造方法
  6. implements 可以实现多个接口
  7. 实现接口的子类必须要重写接口中的方法

内部类

内部类就是在类的内部定义的类

内部类定义:

public class Outer{
	private int id = 10;
	publi void out(){
		System.out.println("这是外部类的方法");
	}
	public class Inner{
		public void in(){
			System.out.println("这是内部类的方法"+id);
		}
	}
}

//在其他类的new
Outer out = new Outer();
Outer.Inner in = out.new Inner();
in.in();

//内部类可以调用类的私有属性

//静态内部类不可以直接调用类的非静态属性

局部内部就是在类的方法中写的类

posted @ 2021-12-15 21:50  程序员预备役  阅读(21)  评论(0编辑  收藏  举报