美文网首页Java
面向对象编程基础

面向对象编程基础

作者: Y_Jaaao | 来源:发表于2018-11-22 01:10 被阅读0次

    1.概述

    • 1.1 对象Object:表示任意存在的事物,即对象是实体存在的事物。通常划分为两类:静态部分和动态部分。静态部分被称为“属性”,是客观存在不可被忽视的,动态部分指的是对象的行为,即对象执行的动作。(例如:对象:一个人,属性:人的性别,行为:行走)

    • 1.2 类:类是封装对象的属性和载体(例如:类:鸟群,属性:翅膀,爪子,行为:觅食,飞行)类包括对象的属性和方法,类中的对象的属性是以成员变量的形势定义的,对象行为是以方法的形式定义的,类其实就是对象的设计图。


      l1.PNG
    • 1.3 特点:
      A. 封装性encapsulation(是核心思想。将对象的属性和行为封装起来,其载体就是类); 对外提供公有的getter/setter

      例子:Fruit


      z1.PNG
    z2.PNG

    B. 继承性inheritance(是实现重复利用的重要手段,子类通过基础,复用父类属性和行为的同时又添加子类特有的属性和行为);


    l1.PNG

    C. 多态性polymorphism(子类继承父类的同时,又具备了自己的特征,能够实现不同的效果)

    2.类与对象

    • 含义: 类是封装对象的属性和载体,Java中定义类时使用class关键字

    • 2.1 成员变量:对象的属性


      z1.PNG
    • 2.2 成员方法:


      z1.PNG
    • 定义:权限修饰符:(控制方法的访问权限)是private、public、protected中的任意一个,也可不写;返回值类型:用来指定方法返回数据的类型,可任意类型,若方法不需要返回值,则使用void关键字

    • 注意:若定义方法时未指定权限修饰符,方法默认访问权限为缺省(即只能在本类或同个包中进行访问);如果有返回值,一定要用return关键字返回相应类型的数组。

    • 2.3 成员方法的参数:
      调用方法可以给该方法传递一个或多个值(实参:传给方法的值;形参:在方法内部,接收实参)
      值参数:表示实参和形参的直接按值传递


      z1.PNG

      引用参数:参数的类型是数组或者其他引用类型,则方法中对参数的修改回反野到原有的数组或其他应用上去。
      不定长参数:若有若干个相同类型参数,可用不定长(例:int add(int...x))

    • 2.3 构造方法:是一个与类同名的方法。每当类实例化一个对象出来,类都会自动调用构造方法。


      z1.PNG
      z1.PNG
    • 2.4 局部变量:在成员方法中定义一个变量,则该变量就是局部变量。局部变量在方法执行时被创建,在方法执行结束时被销毁。

    • 注意:局部变量使用时要进行赋值操作或被初始化,否则会出现编译错误


      z2.PNG
    z1.PNG z1.PNG z2.PNG z3.PNG
    • 2.5 this关键字:用来代表本类对象的引用,this被隐式地用于引用对象的成员变量和方法。如果方法中出现了与局部变量同名的参数,会导致方法无法使用成员变量。


      z1.PNG
    z2.PNG
    • 2.6 类的主方法:主方法是类的入口点,它指定了程序从何开始,提供对程序流向的控制。Java编译器通过主方法来执行程序。


      z1.PNG

      主方法特征:静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的;主方法没有返回值;主方法的形参为数组,其中args[0]--args[n]分别表示程序的第一个参数到第n+1个参数,可以使用args.length获取参数的个数

    • 2.7 小结:A、把数据抽象成类:万事万物皆是对象,数据也一样。任何数据都有特性,将这些特性设置成类的属性。如,时间包含年、月、日、时、分、秒,通用信息包含电话号码和姓名。B、局部变量和全局变量:其实所有的变量都是局部变量,只是根据变量有效范围不同而产生不同的叫法,如非静态全局变量和静态变量,非静态全局变量的有效范围时整个类体,当类销毁后这些全局变量会同时销毁。静态变量的作用范围时整个程序的生命周期 ,只有当程序结束后,静态变量才会销毁。

    3、static关键字

    由static修饰的变量(静态变量)、常量(静态常量)和方法(静态方法),统称为类的静态成员。

    • 3.1 静态变量:把共享的变量用static修饰(例如:一个泳池中,同时打开入水口和出水口,这两个动作会同时影响到水池中的水量,此时水池中的水量就可以认为是一个共享的变量)


      z1.PNG

      同一个类的不同实例对象,可以共用一个静态变量


      z2.PNG
    • 3.2 静态方法:在无法创建类的对象时,要调用类中的方法才能够完成业务逻辑,在 z1.PNG

      这种情况下就可以使用静态方法(无需实例化就可以调用)


      z1.PNG
    • 3.3静态代码块:用static修饰代码区域可以称之为静态代码块


      z1.PNG

      运行顺序:静态代码块由始至终只允许了一次;非静态代码块在每次创建对象的时候,会在构造方法之前运行,所以在读取成员变量name时,只能获取到String类型的默认值“null”;构造方法只有在使用new创建对象的时候才会运行;成员方法只有在使用对象调用的时候才会运行。

    参考文章:点这里

    相关文章

      网友评论

        本文标题:面向对象编程基础

        本文链接:https://www.haomeiwen.com/subject/mphqqqtx.html