JAVA基础之OOP汇总

一、面向对象:

1、OOP 即面向对象编程,java就是面向对象编程的语言。世界由万物组成,万物都是对象(世界万物皆为对象)

     面向对象思想:
     第一步:发现类;
     第二步:发现类的属性;
     第三步:发现类的方法;

2、对象:客观的存在在这个世界上的每一个事物;万事万物皆为对象;
3、类:从具有相同属性和方法的多个对象中抽取出来的;类里面有且仅有属性与方法;(学会把类看做一种数据类型)

4、区别:

对象是实实在在存在的具体的概念 ;
类是一个抽象的概念;

5、属性---本身所具备的特征;方法---会的行为(功能);

二、方法:

1、方法构造:修饰符 返回类型 方法名(参数){方法体}
2、属性构造:修饰符 数据类型 变量名
3、方法返回类型:方法按照返回类型可以分为以下两种:
   a、有返回return  : 在方法名前面接一个数据类型 ,且方法体内部最后一行必须接return ,而且返回的数据类型必须和前面的数据类型保持一致!

  b、无返回void  : 在方法体内部不需要接return ,在类里面 ,有且仅有“属性”和“方法”(禁止直接接代码)
4、方法传参:实参和形参的参数个数、数据类型、顺序一致
5、局部变量和成员变量:
    1.局部变量没有初始值,而成员变量有
    2.同名时,局部变量具有更高的优先级
    3.作用域:局部变量只能在本方法中使用,成员变量可以在本类的所有方法中使用
    4.同一个方法中,局部变量不允许重名

三、对象数组:

1、学会把类看作是一种数据类型!
2、对象数组三部曲:
        定义类
        声明并实例化一个对象
        初始化(赋值)
3、封装两步:私有化属性 公开方法(可以根据实际情况考虑是否公开读写方法
4、this 这个 指代自己本类

四、重载与构造:

1、方法的重载 :同名不同参(参数类型 、个数不一致)
2、构造函数
    a.方法名必须跟类名相同
    b.没有返回类型 ,也不需要void
    c.根据实际情况决定参数个数
    d.在对象被实例化的时候被自动调用 ,不能手动用对象名去
    e.可以有多个(重载)
    f.所有的类都自带一个无参的构造方法 ,一旦自定义了一个构造函数,系统自带的无参的就没有了

五、this static 单例模式:

1、this 这个 指代自己本类;
       构造函数链:  将所有对象的实例化全部归结到一个方法中        
       用this可以在构造函数内部调用其他的构造函数 ,但是它只能放在方法体的第一行;
 2、static
    a、非静态的只能用对象名调用, 静态的既能用对象名来调用, 又能用类名来调用
    b、静态的只能调用静态的 ,非静态的都能调用
    c、静态的在对象中间是共享的,只占用一份内存空间
    d、代码块:分为静态代码块和非静态代码块,静态的只占有一份空间,都是在对象被实例化的时候自动调用 先静后非静
 3、单例模式:
       该类只能被实例化一次(设计模式);

六、继承:

父类中公开的方法或者属性子类都可以无条件拿到(继承到)
1、继承的好处:
       a.少写一些共有的代码
       b.提供另外一种形式的分类
       c.代码重用
 2、语法:
       子类 extends 父类
3、super用法:
       super.属性可以显示调用父类属性;
       super.方法可以显示调用父类方法;
4、子类可以直接拿到父类的公有的
       但是父类不能拿子类的
       继承的单方向
       一个类只允许有一个父类
       继承也是单继承
5、子类在实例化的时候 会先调用父类的构造函数
 

七、重写与抽象:

1、重写:
       a、子类对于父类的不满意,可以补充,则直接重写父类的方法。
       b、删除重写中的super.方法();就是全部推翻父类写法。
       c、注意:子类的方法的名字、返回值、参数必须要与父类保持一致
       d、修饰符只能比父类的要高或者相等
       e、重写的方法是否可以重载?可以

2、抽象:   
    抽象类:不能被实例化 但是可以作为其他类的父类
    抽象方法: * 没有方法体;
                  * 必须在子类中实现(重写),除非子类也是一个抽象类;
                  * 抽象方法必须在抽象类中

八、final与多态:

1、多态:同样一种行为,在不同的对象中(不同的环境下)会产生不同的形态【关键在于将父类作为形参】
2、final:
    1.放在类前面,则该类不能被继承
    2.放在方法前面,则该方法不能在子类中被重写
    3.放在属性(变量)前面,则为常量,必须有初始值且不能被修改

九、instanceof:判断运算符
十、接口:

1、接口表示的其实是一种能力
       对象是对现实世界物体的抽象
       类是对对象的抽象
       接口是对类的抽象
 2、语法:public interface 接口名
       如果一个类要实现这些功能:
       语法是 public class 类名 implements 接口名1,接口名2...
3、接口与抽象类的区别:
       a:抽象类是类所以只能单继承,而接口(interface)可以多实现
       b:抽象类继承用extends,而接口用implements
       c:抽象类可以有构造,接口不能
       d:抽象类可以有一般的属性,接口中的属性只能是静态常量
       e:抽象类中可以有抽象方法,也可以有一般的方法,而接口中只能有抽象方法
       f:抽象类中抽象方法可以被除private以外的修饰符修饰,但是接口中只能是public
   4、常量一定是全大写

十一、异常: 

1、异常:就是在程序中有可能发生的问题。
2、语法是:

try{

//监视有可能出现问题的代码
    }catch(异常的类型 异常信息所封装成的对象){
       处理异常的代码    
    }finally{
       最后会被执行的代码(有无异常都会被执行)
    }
3、自定义异常 throws
4、抛出异常throw

十二、里氏替换原则:

用子类实例化的对象来覆盖父类声明的对象

十三、访问控制符:

private:私有化,最小气的,只能在自己的类中访问;
friendly:默认,友好的,只能在自己的类中、同包的类中访问;
protected:受保护的,只能在自己的类、同包的类、子类中访问;
public:公共的,最大方的,当前项目中所有的类都可以访问。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值