一、面向对象编程
包 继承 组合 多态 抽象类 接口
二、
1、包
包是组织类的一种方式,使用包的主要目的是保证类的唯一性。
可以使用java.util.Data引入java.util这个包中的Data类。
import java.util.Date
public class Test {
public static void main(String[] args) {
Date date=new Date();
//得到一个毫秒级别的时间戳
System.out.println(date.getTime());
}
}
如果需要使用java.util中的其他类,可以使用import java.util*
import java.util.*
public class Test {
public static void main(String[] args) {
Date date=new Date();
//得到一个毫秒级别的时间戳
System.out.println(date.getTime());
}
}
使用import static 可以导入包中的静态的方法和字段,列如
import static java.lang.Math.*;
public class Test {
public static void main(String[] args) {
double x= 30;
double y= 40;
double result = sqrt(pow(x,2)+pow(y,2));
System.out.println(result);
}
}
将类放到包中
1.在文件的最上方加一个package语句制定该代码在那个包中。
2.包名需要尽量指定成唯一的名字,通常会用公司的域名的点到形式(例如com.bit.demol)。
3.包名要和代码路径相匹配,例如创建com.bit.demol来存储代码。
4.如果一个类没有package语句,则该类被放到一个默认的包中。
操作步骤:
(1)在IDEA中新建一个包:右键src->新建->包
(2)在弹出的对话框中输入包名,例如com.bit.demol
(3)在包中创建类,右键包名->新建->类,然后输入类名即可。
(4)此时可以看到我们的磁盘上的目录结构已经被IDEA自动创建出来
(5)同时我们也看的了,在新建的Test.java文件的最上方,就出现了一个package语句
常见的系统包
1.java.lang系统常用的基础类(String,Object)。
2.java.lang.reflect java反射编程包
3.java.net 进行网络编程的包
4.java.sql进行数据库开发的支持包
5.java.util是java提供的工具程序包。(集合类等)很重要
6.java.io I/O编程开发包
2.继承
基本语法:
使用extends指定父类
java中一个子类只能继承一个父类
子类会继承父类的所有public的方法和字段
对于父类的private的字段和方法,子类中是无法访问的
子类的实例中,也包含着父类的实例,可以使用super关键字得到父类实例的引用。
protected关键字
对于类的调用者来说,protected修饰的字段和方法是不能访问的
对于类的子类和同一个包的其他类来说,protected修饰的字段和方法时可以访问的
java中对于字段和方法共有四种访问权限:
private:类内部能访问,类外部不能访问
默认(也叫包访问权限):类内部能访问,同一个包中的类可以访问,其他类不能访问。
protected:类内部能访问,子类和同一个包中的类可以访问,其他的类不能访问。
public:类内部和类的调用者都能访问
final关键字修饰一个变量或者字段的时候,表示常量(不能修改)final关键字也可修饰类,此时表示被修饰的类不能被继承
3.多态
向上转型:
在面向对象程序设计中,针对一些复杂的场景(很多类),程序猿会画一种UML图的方式来表示类之间的关系。此时父类通常画在子类的上方,所以就称为“向上转型”,表示往父类的方向转。
向上转型的发生机制:
直接赋值
方法传参
方法返回
使用多态的好处是?
(1)类调用者对类的使用成本进一步降低
(2)能够降低代码的“圈复杂度”,避免使用大量的if-else
(3)可扩展能力更强
向下转型:向下转型就是父类的对象转成子类对象
super关键字
super表示获取到父类实例的引用,涉及到两种常见的用法。
(1)使用了super来调用父类的构造器
(2)使用super来调用父类的普通方法