首页 > 其他分享 >面向对象

面向对象

时间:2023-06-19 13:44:26浏览次数:30  
标签:对象 子类 void 面向对象 匿名 new public

面向对象

可变个数的形参

JDK5.0之前:采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a ,String[] books);
JDK5 之后:采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a,String... books);

javaBean

类是公共的
有一个无参的公共的构造器
有属性,且有对应的get ,set方法

子类对象实例化过程

默认会调用父类的无参构造器

instanceof

检查对象是否为某类的对象

多态性

  • 丢失子类特性
    一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法
  • 方法与属性
    方法发生重写时,执行子类中的方法。属性被重写时,依然使用父类中的属性。
  • 编辑与运行
    多态为运行时发生的事情

Object

  • ==
    比较值,或地址
  • equals
    比较对象的地址,个别方法重写后变为比较对象内容。

包装类

  • 字符串转基本
    int i = new Integer("12");
    float f = float.parseFloat("12.1");
  • 基本转字符串
    String str = String.valueOf(2.23);

单例模式

  • 饿汉式:
    好处:线程安全
    坏处:对象存在时间过长
  • 懒汉式:
    好处:延迟对象加载 省内存
    坏处: 线程不安全

类的工作流程

声明成员变量的默认初始化——>显式初始化,多个初始化块依次被执行——>构造器再对成员进行初始化操作——>通过对象使用成员变量

勾子方法

模版设计模式——>抽象类提供模板 子类提供勾子函数

匿名

  • 非匿名实现类的非匿名对象
    Flash flash = new Flash();
  • 非匿名实现类的匿名对象
    com.transferData(new Printer());
  • 匿名实现类的非匿名对象
USB phone = new USB(){
    public void start(){}
    public void stop(){}
};
  • 匿名实现类的匿名对象
com.transferData(new USB(){
    public void start(){}
    public void stop(){}
});

JDK1.8接口新特性

之前的版本中,接口只可以写全局常量和抽象方法

  • 静态方法
    接口中定义的静态方法只能通过接口来调用
  • 默认方法
    通过实现类的对象可以直接调用 default 方法
    如果和父类中的冲突,则遵守类优先原则
    如果和接口中的冲突,则必须重写该方法

异常

常见异常

ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 空指针异常
ClassCastException 类型转换异常
ArithmeticException 算术异常

作者:柏为杰

标签:对象,子类,void,面向对象,匿名,new,public
From: https://www.cnblogs.com/DTCLOUD/p/17490925.html

相关文章

  • 20230418 0. 面向对象基础
    面向对象的三大特性:封装、继承、多态面向对象的好处:可维护、可扩展、可复用、灵活性好封装每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。封装有很多好处:第一,良好的封装能够减少耦合第二,类内部的实现可以自由地修......
  • Java面向对象编程的三大特性:封装、继承、多态。
    一、封装封装的核心在于私有化(private),大部分情况下,来封装对象的属性,很少有封装方法的。通过将对象的属性封装,提供对外的公共方法来访问属性是最常见的方式。publicstaticclassFengZhuang{//通过封装,设置私有属性privateStringname;privat......
  • 面向对象-继承
    面向对象的继承是一种机制,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。继承可以使代码重用、提高代码的可扩展性和灵活性。通过继承,子类可以继承父类的非私有属性和方法,并且可以在子类中添加自己特定的属性和方法。子类可以继承父类的行为,也可以重新定......
  • 面向对象-封装
    面向对象的封装是一种面向对象编程的核心概念,它指的是将数据和对数据的操作封装在一个类中,通过类的访问权限控制,隐藏内部实现细节,提供公共接口供其他对象访问。封装的目的是实现数据的安全性和灵活性。通过将数据和操作数据的方法封装在一起,可以隐藏实现细节,防止外部直接访问和修......
  • 【web开发】使用Trait解决PHP面向对象中类只支持单继承的限制
    前言众所周知,PHP的面向对象和Java一样,类只支持单继承,即是一个类只能继承自一个父类,不能存在多个父类,这也很好理解,就像现实的人类社会一样,儿子继承自你的父亲,父亲继承自祖父。。。,但是在实际开发中很多时候我们想像c++一样使用多重继承。奈何PHP只能使用单继承,在Trait出现之前,在PHP......
  • C++《面向对象程序设计课程设计》[2023-06-16]
    C++《面向对象程序设计课程设计》[2023-06-16]《面向对象程序设计课程设计》任务书时间:班级:一分组和评分周一上午8:30作业布置周四5/6节开始,周五12点前检查,提问并打分;每人完成自己的课程设计报告,不能复制其他同学的报告内容,报告中主要说明自己在设计中所作的工作。......
  • 面向对象编程-实例属性和类属性
    在实例中绑定属性,和直接在类种绑定属性是不一样的,实例中绑定的只能在实例中用如果Student类本身需要绑定一个属性,所有实例都可以访问,那么可以这么定义classStudent(object):name='Student'点击查看代码classStudent(object):score=100#定义类属性def__in......
  • 面向对象编程-获取对象信息
    获取对象类型使用type()type(123)<class'int'>type('str')<class'str'>type(None)<type(None)'NoneType'>type(abs)<class'builtin_function_or_method'>type(a)<class'......
  • 面向对象编程-类和实例
    定义类通过class关键字,类名通常是大写开头的单词,(object)表示这个类从哪个类继承下来,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类点击查看代码classStudent(object):pass创建好类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现......
  • 92 面向对象 商品(多个属性)放入3个数组中
    对象packagecom.fqs.goods;publicclassGoods{privateintid;privateStringname;privatedoubleprice;privateintgeShu;publicGoods(){}publicGoods(intid,Stringname,doubleprice,intgeShu){this.id=......