面向对象一:什么是面向对象?类与对象创建、构造器、内部类

一、面向过程与面向对象

1、面向过程:强调步骤、过程,第一步、第二步分别做什么;

2、面向对象:先分类,赋予这个类某些属性和方法,再实现方法;本质就是以类的方式组织代码,以对象的形式封装数据;

3、面向对象的特性:(***)

抽象:找出事物的相似和共性之处,然后将这些事物归为一个类;这个类只考虑这些事物的相似和共性,忽略与当前主题和目标无关的方面; 比如:猫、狗、猪,可以抽象成动物类;

封装数据的隐藏):将对象封装成一个高度自治的相对封闭的个体,private 数据类型 属性名(属性私有,get/set);
程序设计要求“高内聚,低耦合”,高内聚就是类的内部数据细节自己操作完成,不允许外界干涉,低耦合:仅仅暴露少量的方法给外部使用;

继承:extends,扩展。将已经存在的类里面定义的内容拿来作为自己的内容,自己还可以加入新内容;简而言之,儿子继承父亲的遗产,自己还可以创造自己的资产;

super注意点
子类可以通过super.父类的属性,来获取父类的属性名
super.方法名(),来调用父类的方法
super调用父类的构造方法,必须写在子类方法语句的第一行;
super只出现在子类的方法或者构造方法中;
super和this不能同时调用构造方法;

与this的区别注意点:

  1. 代表的对象不同:this指本身调用这个对象;super代表父类对象的应用;
  2. 前提:this没有继承也可以使用,super只能在继承条件下使用;
  3. 构造方法:this(),本类的构造;super(),父类的构造;

方法的重写:(override)两同两小一大原则;重写是重写非静态的方法,只能是public的;
方法名相同,参数类型相同;
子类返回类型小于等于父类方法返回类型;
子类抛出异常小于等于父类方法抛出异常;
子类访问权限大于等于父类方法访问权限;

为什么要重写?
因为父类的功能子类不一定需要

多态:同一方法可以根据发送对象的不同采用多种不同的行为方式;即一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多;
多态存在的条件:继承、子类重写父类方法、父类引用指向子类对象
注意:多态是方法的多态,属性没有多态
instanceof关键字:(类型转换)引用类型,判断一个对象是什么类型;判断两个类之间是否存在父子关系;

   Object o = new Student();
   System.out,printIn(o instanceof Student);

4、类是对象的模板,对象是一个具体的实例;

5、类是抽象的,对象是具体的;

二、类与对象创建、构造器

1、使用new关键字创建对象

2、使用new关键字创建对象的时候,除了分配内存空间外,还会给创建好的对象 进行默认的初始化,以及对类中构造器的使用;

3、类中的构造器也叫构造方法,创建对象的时候必须要用的。并且构造器有以下特点:必须和类的名字相同、必须没有返回类型,也不能写void;

4、构造器的作用:new本质在用构造方法,初始化对象的值;

5、对象的引用:对象是通过引用来操作的,栈—》堆

三、内部类

1、静态内部类不可以访问外部的非静态方法。但可以有public static astract class 类名{};

2、成员内部类可以访问外部的所有资源,但是本身不能有静态属性因为自己本身就需要依靠外部类来实例化);

3、局部内部类:不能被访问修饰符合static修饰,只能访问final变量和形参;

4、匿名内部类:没有构造器,没有静态资源,无法被访问符,static修饰
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值