面向对象

万物皆对象

描述一个物质都可以通过两方面说明:数据模型(属性)、行为模型(行为)。

在Java编程中,我们使用成员变量表示数据模型,用成员方法表示行为模型

使用类表示某些具有相同属性和行为的事物。

1、构造方法

注意:

当类中没有显式的构造方法,实例化该类的对象时,程序会自动创建一个公开的无参构造方法;

如果类中有显示的构造方法,程序就不会创建无参构造;

构造方法,一般是用于为成员属性赋初始化值;

2、变量

2.1 局部变量(方法中定义的变量,方法结束也就摧毁)

2.2 实例变量

2.3 类的变量(定义在一个类中,static类型当作共享数据)

3、访问修饰符

修饰符

当前类

同包的类

同包的子类

异包

异包的子类

public

protected

×

×

默认的

×

×

private

×

×

×

×

4、this关键字

  • 当局部变量名和实例变量名同名时,使用this.变量名来表示实例变量;(方法函数中区分类变量和局部变量)
  • this()表示当前类的构造方法,只能在构造方法中使用该写法,并且是写在构造方法内的第一行。(在构造方法中用this给类变量赋值)

5、封装

私有的属性,公开的方法。

封装的步骤:

声明私有(private)的属性;

声明公开(public)的geter和seter方法;(这样就可以调用到类的私有属性啦!!!

6、继承

father--->son--->grandson

Java中的继承是单继承,可以实现多层继承(继承一个类(父类)之后,在用一个类继承子类(son)),继承的关键字extends

  • 子类继承父类非私有的所有属性和方法,不能继承父类的构造方法;
  • 实例化子类对象的步骤:先执行父类的构造方法,再执行子类的构造方法;

规则:

  • 子类继承父类非私有的所有属性和方法,不能继承父类的构造方法;
  • 实例化子类对象的步骤:先执行父类的构造方法,再执行子类的构造方法;

重写定义:

  • 子类重新声明从父类继承来的方法,称为方法重写;
  • 方法重写时,方法的声明部分要和父类保持一致(返回值类型,方法名,参数);
  • 重写方法的访问权限要大于等于父类中方法的访问权限;
  • 子类重写父类方法,子类对象调用的是子类中重写后的方法;
  • 使用static修饰的方法不能被重写,但是可以被子类重写声明;
  • 不同包的子类可以重写父类中protected修饰的方法,但是不能以继承的形式,用子类对象直接调用父类的该方法;

Final关键字:

  • 当final修饰类时,当前类不能被继承;
  • 当final修饰方法时,该方法不能被重写;
  • 当final修饰变量时,变量的值不能被修改,即为常量;

7、多态

实现的必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象(调用父类方法,调用子类方法,根据不同的情况调用不同的方法)

8、抽象类

抽象类中一定有抽象方法,也可以其他方法。有抽象方法但不全是抽象方法的类(抽象类),全是抽象方法的类(接口)

9、接口

  • 接口使用interface关键字修饰;
  • 接口可以被实现,使用implements关键字,一个类实现一个接口,必须重写该接口中所有的抽象方法;也可以实现多个接口,但是要实现接口的抽象方法。

10、内部类

  • 10.1 成员内部类
  • 10.2 静态内部类

  • 10.3 局部内部类

  • 10.4 匿名内部类

11、异常处理

1、常见的异常类

  • ArithmeticException:算术异常;
  • NullPointerException:空指针异常;
  • IndexOutOfBoundsException:下标越界异常,有两个子类,分别为:ArrayIndexOutOfBoundsException(数组下标越界)、
  •  StringIndexOutOfBoundsException(字符串下标越界);
  • ClassCastException:类型转换异常;
  • ParseException:解析异常;
  • InputMismatchException:输入不匹配异常; 

2、处理异常

2.1  使用try-catch-finally语句块捕获异常

2.2 抛出异常

2.3、自定义异常

2.4、异常链

12、IO流

1、File类

常用方法:

exists():判断指定的目录或文件是否存在,存在返回true;

createNewFile():当且仅当指定文件不存在时,创建新的空文件;

mkdir():创建指定的目录;

mkdirs():创建多层级目录,包含必须的但不存的父级目录;

delete():删除文件或目录,删除成功返回true;

getName():返回此路径下最后一个层级的文件名或目录名;

getParent():返回该路径表示的文件或目录的父级路径;

getParentFile():获得父级目录的File对象;

getPath():将此对象表示的路径转为字符串类型;

length():获得文件的大小;

lastModified():获取最后一次修改的时间;

isDirectory():判断是否为目录;

isFile():判断是否为文件;

list():获取指定目录下的所有文件名或目录名,返回String[]类型;

listFiles():获取指定目录下的所有文件名或目录名,返回File[]类型;

renameTo(File newfile):修改该文件对象的文件名;

setLastModified(long time):修改文件最后一次操作的时间;

setWritable(boolean writable):设置文件为只读文件;

获取文件绝对路径三个方法:

toString();

getPath();

getAbsolutePath();

 

 

封装    继承    多态   抽象类  接口  自定义异常   反射  查api

反射应用于防止硬编码,不用去改写旧的编码,从新写新的代码,或者是调用txt或者xml易修改的内容。如果修改源代码,还要从新编译,因为都是执行的是.java编译之后的.class文件,修改原代码,要重新生成新的class文件,有可能还不兼容。所以要不就从写新的代码,继承其他类,新加功能。或者修改读写文件(txt,xml),不用操作原代码。

 

 

链接:https://pan.baidu.com/s/1UrE9KShMjvmcJk-juxacQg 
提取码:u8r1 
复制这段内容后打开百度网盘手机App,操作更方便哦

反射简单案例    就是使用多态的形式进行强制类型转化,用父类进行引用子类对象,调用子类方法。

封装继承多态接口抽象类的话菜鸟教程

http://www.runoob.com/java/java-inheritance.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值