随堂笔记7.29:对象,接口,构造方法,引用数据类型,抽象类,抽象方法-------1

来源:互联网 发布:网络监控能看到多久的 编辑:程序博客网 时间:2024/05/17 18:46

1创建对象

//创建对象,会调用构造方法
//类中如果没有声明构造方法时会默认生成无参构造方法。

2.构造方法

//初始化类当中的所有属性
//未赋值的属性为默认值,引用对象为null,bolean为false,其他的都是0,

/

3.封装性

把一些属性的访问权限变小。用特定的方法去访问。
private,default,protected,public

4.static

关键字static修饰方法(静态方法)或变量 。不含static关键字为非静态方法(对象方法)。

5.断言

      Assert  e.getsize()  >  size: "太大放不下";  //断言  java -ea Demo  开启断言       //断言:用于调试,用-ea开启,如果断言为false,则抛出异常,属于运行时异常        if(e.getsize() > size){            System.out.println("装不下");         }else{            System.out.println("装入"+ e.getName());       }

6.接口

/* * 接口 * 接口里面没有属性,只有常量(以 static final 修饰的属性都是常量) * 方法:默认具有public abstract 两个关键字, 1.8以后,方法可以有方法体,要加上default * 1.8以后可以有静态方法 * 接口主要用于方法的传递 * 接口不可以被实例化 */public interface Drawable {     int a = 10;    void draw(int i);    default  void  method(){        System.out.println("default修饰");    }   static void d(){       System.out.println("static修饰");      }}

如果一个类实现两个接口,这两个接口同时有相同的抽象方法,在类中只需要重写一次这个方法。
如果接口中有default修饰的方法不需要重写。
如果两个接口里的方法名相同都是default方法,里面的方法体不同,在类中需要重写该方法。
如果两个接口中方法名,参数都相同的方法,一个接口是抽象方法,另一个是default修饰有方法体。这是该类也必须重写该方法。

7.接口的使用

有三种方法

1.  //实现接口实例化对象。    Drawable drawable = new Rect();    drawable.draw(5);2.  // 匿名内部类 Drawable d = new Drawable() {     @Override     public void draw(int i) {         System.out.println("匿名内部类");     } };d.draw(5);3. //JDK1.8以后的lamdba语法,只能实现单方法的接口。Drawable drew = (i) ->{    System.out.println("lambda " + i);};drew.draw(5);

8.继承

//引用数据类型转换
//自动:子类对象转换为父类对象
//强制: 父类对象转为子类对象,构造异常。

//子类的分类更加细,属性和方法更多,扩展父类。
public class Elephant extends Thing

9.重写,重载

@Override//重写 在两个有继承关系的类中,子类重写父类
/*
* 访问权限不能小于父类的访问权限
* 返回值类型:为父类返回值类型或其子类类型
* 方法名一定是相同的
* 参数列表必须相同。
* 声明抛出的异常一定是父类声明抛出的范围内的异常。
* */
//重载 在同一个类中

10.方法finalize() 回收对象

 System.gc();//唤醒垃圾回收/* *相当于c++中的析构方法,对象被回收的时候调用 */protected  void  finalize() throws Throwable {    super.finalize();    System.out.println("大象被回收了");}

11.抽象类,抽象方法

/* * 抽象类 * 不能被实例化 (不能new) */public abstract class Thing /* *抽象方法 * 抽象一定是在抽象类当中 * 抽象方法没有方法体 * 为了被重写存在的 * 如果继承一个有抽象方法的抽象类时,一定重写抽象方法。 */    public abstract String getName();
0 0
原创粉丝点击