随堂笔记7.29:对象,接口,构造方法,引用数据类型,抽象类,抽象方法-------1
2016-07-29 20:00
288 查看
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();
相关文章推荐
- Python动态类型的学习---引用的理解
- php7 扩展类的写法[2]
- php7 类的方法传参[3]
- 土人系列AS入门教程 -- 对象篇
- 一个简单的asp数据库操作类
- Ruby面向对象编程中类与方法的基础学习
- C#托管堆对象实例包含内容分析
- C#实现用于操作wav声音文件的类实例
- C#类的多态性详解
- 在线管理数据库 类
- C#实现获取不同对象中名称相同属性的方法
- Lua面向对象之类和继承浅析
- Lua中类的实现原理探讨(Lua中实现类的方法)
- Lua中的类编程代码实例
- javascript asp教程第十一课--Application 对象
- C#常用目录文件操作类实例
- PowerShell中使用Out-String命令把对象转换成字符串输出的例子
- c# 类和成员的修饰详细介绍
- C#中实现判断某个类是否实现了某个接口
- C#类的创建与初始化实例解析