面向对象笔记

https://www.cnblogs.com/JinQing/p/6237013.html


”造车


  一.画图纸

  1.先定义车的属性 color等

  2.定义车的动作

二.查看图纸找工厂

类就是图纸

属性:这一类事物拥有的共同属性

动作:这一类事务共同执行的功能

对象是使用类创建的具体东西

对象能干什么完全取决类是怎么定义的让他干什么

创建对象:

类名  引用=new 构造器();

this 关键字

this 表示当前正在执行方法的对象

    this 当前类的对象

this 可以在方法内获取对象的属性信息

this 可以区分局部变量和成员变量

构造方法

    在创建对象的时候 自动调用的方法

    语法:

    public 类名(传参){


    }

    注意:

    1.没有返回值这一项

    2.在我们new的时候自动构造方法



    作用:在创建对象的时候,给对象设置属性信息;


    java会自动送给每一个类一个无参的构造方法,但是如果你写了构造方法,系统就不在赠送了。









getter 和setter


  成员变量一般使用private来声明,保护成员变量不被胡乱的赋值

  sertter 主要是给成员变量赋值,并起到一定的保护作用

  getter  从成员变量中获取数值




继承:

子类可以自动拥有父类中除了私有内容外其他的所有内容

当出现x是一种y的时候,x就可以继承y

黑熊怪是一种妖怪

public class 子类  extends 父类{

}

作用:简化代码的开发

子类对父类进行了扩展


super

表示父类中的内容

this表示子类的内容

用super和this区分父类和子类中重名的内容

创建对象的过程:

先创建父类的对象,在创建子类的对象 





方法的重写

重写:子类对父类提供的方法进行重写定义

  语法:子类和父类中的方法声明完全一致

  重写又被称为方法的覆盖,如果覆盖了调用的是子类的方法



多态

同一个对象拥有多种形态

作用:把不同的数据类型进行统一,让程序具有超强的可扩展性

小知识点

把子类的对象赋值给父类的引用(变量) 向上转型

缺点:屏蔽掉子类中的特有的方法

把父类的对象转化回子类的引用(变量) 向下转型

向下转型有可能有风险,java要求必须要写强制类型转换(转换之后的数据类型)变量

把不同的数据类型进行统一(cat,dog都是属于animal),可以把猫当成动物的

final

1.被final修饰的变量不可以被改变,又被称之为常量

2.被final修饰的方法不能被重写

3.被final修饰的类不可以被继承

抽象

抽象:只声明 不实现

抽象方法 用  abstract来修饰,不可以有方法体,直接用分号结束  这个方法就是一个抽象方法

抽象类:如果一个类中有抽象方法,这给类必须是一个抽象类

    1.抽象类不可以创建(new)对象

    2.抽象类的子类必须重写父类中的抽象方法 否则 子类必须也是抽象类

    通过抽象类可以强制的要求子类中必须有那些方法

    抽象类可以有支持的方法





接口:

接口是 一种特殊的抽象类,接口中所有的 方法都是抽象方法

接口使用interface来声明,已经不是一个类了

接口中所有的方法都是抽象方法  可以省略掉abstract

接口中所有的变量都是全局静态常量

接口中所有的内容都是公开的  公共的

接口中所有的方法都是抽象方法,不可以有普通方法

能继承接口的只能是接口    接口和类只能是实现关系 imlpements

接口和类只能是实现关系,接口一样具有实现性

类只能单继承,接口可以多实现,接口具有多态性,

接口可以把很多不相关的内容进行整合

接口中所有的变量都是全局静态常量

成员变量初始值

java中所有的变量都是先声明,后赋值才能使用

java中的成员变量,在创建对象的时候都会先执行一次初始化操作,都会给一个默认值

基本数据类型的默认值都是0,  boolean的是false

引用数据类型:null

null表示空,什么都没有

object

万事万物皆为对象

所有的对象都是对象

在java中所有的类都继承object

object是一个类,所有类的根

我们编写的类即便不写继承关系,那么默认也会继承object

equals和==

==判断作用两边的数据类型是否一致

euqals:object类提供的一个方法,用来判断两个对象是否相等

字符串判断一定要用equals

toString方法

toString对一个对象的字符串的表示形式

Java官方推荐重写这个方法,默认的太丑 包名+类名+@+内存地址

异常

运行时异常    语法正确,逻辑错误

编译时异常    语法错误

抛异常  把错误扔出来

捕获异常

异常类

Throwable:分为Error  Exception

1.RuntimeException 运行时异常,一般不手动处理,出问题了在处理

2.其他Exception异常    必须手动处理

3.Error:一般指的是系统类的错误

异常 处理

cry{

尝试执行的代码    //如果代码无错,直接跳过catch运行finally, 如果代码有错全部运行

}catch{

处理执行的代码

}finally{

最后的

}

throws 与throw 的区别

throws  写在方法的后面

表示异常的声明,它在定义方法的时候去使用,表示这个方法有可能会产生异常,但是我不会在这个方法中去处理,谁调用谁处理。

throw 表示人为的抛出异常,这个异常对象需要我们自己new

方法里面写throw 方法定义必须写throws

自定义异常

自定义异常:自定义的类继承Exception,然后对子类进行扩展以满足自己的需求。public class extends Exception{}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继...
    863cda997e42阅读 3,921评论 0 1
  • 一、继承: java中只允许多层继承,不允许多重继承 继承的子类有时也称派生类,而被继承的类叫基类或父类(还有因为...
    感同身受_阅读 4,477评论 0 1
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 4,884评论 0 2
  • 什么是对象 1.对象的概念:对特定一个存在事物2.什么是面向对象:以自我为中心对待一个特定事物存在,需要自己描述出...
    joshul阅读 4,017评论 0 1
  • 【部分内容来自网络,侵删】 类和面向对象 面向对象的程序核心是由对象组成的,每个对象包含着对用户公开的特定功能和隐...
    昵称该起什么好呢阅读 3,868评论 0 0