首页 > 编程语言 >java学习笔记010

java学习笔记010

时间:2022-08-17 16:12:34浏览次数:52  
标签:部类 java 内部 方法 笔记 010 new 异常 public

1.JDK8.0接口新特性
static方法
	只能通过 接口名.静态方法名 的方式来调用
default方法
	可以通过 实现类对象.默认方法名 的方式来调用
	在实现类的方法中通过 接口名.super.默认方法名 的方式来调用
	可以重写
类优先原则
	接口的实现类的父类含有与default方法同名的方法,且实现类(子类)没有重写该方法,实现类(子类)对象调用的是父类中的方法
接口冲突
	一个类实现的多个接口中含有同名默认方法,且该类没有重写该方法,那么会报错
2.内部类
"this"是指(或者说:所代表的是)当前这段代码所在的类的对象,而"类名.this"是指"类名"的对象(一般在匿名类或内部类中使用来调用外部类的方法或属性)
内部类可以调用外部类的属性和方法
	eat() 其实是 外部类.this.eat()
在类外部创建静态内部类对象
	外部类.内部类 对象名 = new 外部类.内部类();
	Person.Heart heart = new Person.Heart();
在类外部创建非静态内部类对象
	外部类 外部类对象 = new 外部类();
	外部类.内部类 对象名 = 外部类对象.new 内部类();
	Person person = new Person();
	Person.Heart heart = person.new Heart();

获取局部内部类对象(只能在方法内部)
eg:
public Comparable getUnnamedComparable(){
	return new Comparable() {	//返回一个实现Comparable接口的匿名局部(内部)类对象
		@Override
		public int compareTo(Object o) {
			return 0;
		}
	};
}
匿名内部类
//创建实现了OnClickListener接口的匿名非静态内部类的匿名对象
eg:android
button.setOnClickListener(new View.OnClickListener(){
	@Override
	public void onClick(){
		System.out.println("按下按钮");
	}
});
3.异常处理
常见error
	栈溢出:StackOverflowError
	堆溢出:OutOfMemoryError (OOM)
Exception
	try_catch_finally结构
		try{
			//可能出现代码的代码
		}catch(异常类型1 e){
			//处理异常1
			e.getMessage();
			e.printStactTrace();
		}catch(异常类型n 变量名n){
			//处理异常n
			//父类的异常放在后面
		}finally{
			//一定会执行的代码,即使catch语句块中也有异常或return语句
		}

	throws结构
		public void method() throws FileNotFoundException, IOexception{
			//谁调用这个方法就把异常抛给谁,子类重写父类的方法抛出的异常不大于父类方法抛出的异常,父类没有定义throws子类需要try—catch-finally结构进行处理
		}
4.手动抛出异常、自定义异常
throw new RuntimeException("手动抛出异常");
自定义异常
eg:
public class MyException extends RuntimeException{

	private static final long serialVersionUID = 1L;

	public MyException() {
		super();
	}

	public MyException(String msg) {
		super(msg);
	}
}

标签:部类,java,内部,方法,笔记,010,new,异常,public
From: https://www.cnblogs.com/zhengcg/p/16589457.html

相关文章

  • 借助HSDB查看Java类对应的klass模型
    问题一:Java的每个类被加载到JVM中,他们对应的C++类是什么?答:klass模型问题二:在JDK8中,Java类存储在方法区还是堆区?普通的Java类,在JVM中对应的C++类是InstanceKlass,存储......
  • java 携带session 前台传递cookie 跨域解决方案 vue + java
    前台axios设置withCredentials:true后台设置header("Access-Control-Allow-Origin","源地址";header("Access-Control-Allow-Credentials","true");这里源地址......
  • 【Java基础】8种基础数据类型和String类型
    变量必须先声明,后使用1.变量分类(1)按数据类型分(2)按声明的位置分2.基本数据类型和String类型(1)整型整型占用存储空间byte1字节=8bitshort2字节int4......
  • [Python学习笔记]Python基础-12 面向对象编程_属性和方法
    内置属性可以使用内置函数dir查看一个对象支持的所有属性和方法,Python中存在很多的内置属性classPerson(object):def__init__(self,name,age)->None:......
  • [Python学习笔记]Python基础-13 面向对象编程_继承和多态
    继承面向对象的编程有三大特性封装:函数是对语句的封装类是对函数和变量的封装继承类和类之间可以人为,手动的建立父子关系父类的属性和方法,子类可以使用......
  • [Python学习笔记]Python基础-14 文件操作
    打开文件python中,使用open内置函数打开并操作一个文件open参数介绍file=open('xxx.txt',r,encoding='utf-8')file:用来指定的打开的文件(文件路径)mode:打......
  • Java面试知识点总结(二)
    字符串&集合面试题汇总一、Java中操作字符串都有哪些类?它们之间有什么区别?操作字符串的类有:String、StringBuffer、StringBuilder。String和StringBuffer、StringBu......
  • 入门笔记
    第一个程序LearnOpenGL视口glViewport函数前两个参数控制窗口左下角的位置。第三个和第四个参数控制渲染窗口的宽度和高度(像素)。也可以将视口的维度设置为比GLFW的维度......
  • java stream List<List<Object>> 转List<Object>
    以下几种方法都可以private<T>List<T>mergeOne(Stream<List<T>>listStream){returnlistStream.flatMap(List::stream).collect(toList());}private<T>Lis......
  • 毫米波雷达-学习笔记
    入门材料自动驾驶毫米波雷达物体检测技术毫米波雷达物体检测技术(硬件&软件)TI:mmWave系列培训3.3mmWave生命体征实验......