java基础都学了点啥? (Day4)打卡:让学生拿着手机上网课,不就是让孙悟空看守蟠桃园吗?
对昨天内容的补充
java的三大特性
类的继承
*类继承的语法格式: 【修饰符】 class 子类名 extends 父类名{
程序核心代码
}
*注意事项:
1.类支持单继承:一个类只能有一个父类。(一个孩子只能继承一个爸爸的财产)
2.多个类可以继承同一个父类。(一个父亲的财产可以有不唯一个子女继承)
3.支持多层继承:子类继承父类,父类继承他的父类。
*重写父类方法:
1.父类中私有方法不能被重写。因为父类私有方法子类根本无法继承。
2.父类中方法有final修饰的不能被重写
3.子类所重写的方法的访问修饰符必须高于或者等于父类的访问修饰符。
—————————————————————————————————————
重写method1方法,返回值为派生类
重写method2方法,子类的访问修饰符高于父类的访问修饰符
import java.util.ArrayList; public class XiaoMing extends Person{ @Override public ArrayList method1() { return null; } @Override public ArrayList method2() { return super.method2(); } @Override void method3() { super.method3(); } }
object类
—————————————————————————————————————
在JAVA中所有的类都是Object的直接子类或间接子类
一切皆为对象: Object
所有类的对象都可以声明成Object引用
Object obj = new Student();Object obj = new Person();
—————————————————————————————————————
*equals方法的作用:
public class Computer { private String name; private String address; @Override public boolean equals(Object obj) { if(this == obj) return true; if(obj instanceof Computer){ Computer c = (Computer)obj; //向下转型 //有可能报控制正异常 if(c.name.equals(this.name) && c.address.equals(this.address)) return true; return false; } return false; }}
—————————————————————————————————————
*getClass方法的作用:
Computer computer1 = null; computer1 =new Computer("联想"); System.out.println( computer1.getClass()); class com.xja.demo.Computer
—————————————————————————————————————*hashCode方法的作用
同一个对象的hashcode一定相同,不同的对象可能会生成相同的hashcode值。
不能根据hashcode值判断对象是否相等,但可以两个对象不等,如果两个对象的hashcode值不等,则必定是两个不同的对象。
————————————————————————————————————
finnal关键字
特点:
1.final修饰类的时候不能被继承。
2.修饰方法的时候不能被重写。
3.修饰属性的时候不能被修改,是个常量。
抽象类和接口
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403110743410.png
接口的含义:接口就是只有一个抽象方法和常量的“类”。但在java8以后可以有静态方法和默认方法。
接口使用interface关键字来声明一个类,同时接口不能创建对象。如果用接口来声明创建对象时只能用接口中的变量。
一个类实现接口时,必须实现接口中的所有抽象方法。
实现接口使用implements 关键字。
多态
成员函数在多态调用时,编译看左,运行看右;
成员变量:无论编译还是运行,都看左(引用型变量所属的类)。
静态成员函数的特点:无论编译还是运行,都看左边。
lambda 表达式
ambda 的基本结构为 (arguments) -> body,有如下几种情况:
参数类型可推导时,不需要指定类型,如 (a) -> System.out.println(a)
当只有一个参数且类型可推导时,不强制写 (), 如 a -> System.out.println(a)
参数指定类型时,必须有括号,如 (int a) -> System.out.println(a)
参数可以为空,如 () -> System.out.println(“hello”)
body 需要用 {} 包含语句,当只有一条语句时 {} 可省略
(参数类表)->{ 方法体 } // 如果方法中只有一句代码,那么“{ }”也可以省略
Comparator<String> c =new Comparator<String> { public int compare(Stirng o1,String o2){ return o1.length-o2.length; } } Comparator<String> c = (o1,o2) -> { return o1.length-o2.length; } // 如果方法最终使用return关键字返回,那么可以忽略“{ }”时, // return关键字也要一同忽略 Comparator<String> c = (o1,o2) ->o1.length-o2.length;
方法中含有参数时使用lambda
参数是不需要指定类型的,编译器会根据代码分析出类型
throw关键字
import java.util.Objects; public class Demo01 { public static void main(String[] args) { int [] arrayA =null; int index = 6; f1(arrayA,index); } public static void f1(int [] arrayA,int index){ /*if(arrayA==null){ throw new NullPointerException("数组空指针异常"); }*/ Objects.requireNonNull(arrayA,"数组空指针异常"); if(index>arrayA.length-1||index<0){ throw new ArrayIndexOutOfBoundsException("越界异常"); } } }
- 点赞 1
- 收藏
- 分享
- 文章举报
- 传智播客-Java基础加强-day4
- JAVA相关基础知识(复习java,为的就是搞android)
- JAVA相关基础知识 6 Pz% @5P 1、面向对象的特征有哪些方面 yl3 =V 5b 1.抽象: 8 9M.C|Dkf 抽象就是忽略一个主题中与当前...
- 【java基础】一个简单的学生寝室查询系统
- Java基础手机-位运算符(转载)
- Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
- JAVA代码—算法基础:学生出勤记录问题
- 黑马程序员__java基础视频day3、day4
- Java基础回顾_二维数组计算班级学生成绩_简单
- Java基础知识强化之IO流笔记51:IO流练习之 键盘录入学生信息按照总分排序写入文本文件中的案例
- 学生管理系统java(最基础的)
- 【java基础之代码】【正则表达式匹配字符串检测输入的是否为手机号码】
- day09 Java基础——-ArrayList集合&学生管理系统
- 「Java学习打卡」5、简单的学生信息处理程序实现
- 一、java包的用法---基础,二、包的用法---进阶,三、JAR命令用法,包是一组类的集合,包其实就是多个文件夹构成的多级目录,包名全部用小写字母表示,在程序中要声明类所属的包时,用package
- 黑马程序员_java基础File类篇Day4
- Java基础实现学生管理系统
- java基础--数组(算学生成绩)
- Java基础知识强化之集合框架笔记13:Collection集合存储学生对象并遍历
- 牛客网每日打卡-Java基础-20160326