美文网首页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创建对象的时候才会运行;成员方法只有在使用对象调用的时候才会运行。

参考文章:点这里

相关文章

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • Spring系列:Spring框架为我们提供了哪些编程模式,都了

    面向对象编程 java语言本身就支持面向对象语言的编程特性,Spring在此基础进行了丰富和扩展,让面向对象编程更...

  • JavaScript之 new 命令

    JavaScript 面向对象编程的基础知识篇 1 。 1. 概述 面向对象编程(Object Oriented ...

  • 面向对象编程的反向学习

    今天看了篇关于面向对象编程的文章,发现自己对于面向对象编程的基础理解甚少。作者对于面向对象编程的问题描述正式我们在...

  • Java基础03面向对象

    Java 基础02Java编程基础 面向对象上 面向对象的概述 面向对象的概述:面向对象是一种符号人类思维习惯的编...

  • python的面向对象

    python的面向对象(ObjectOriented,OO)-面向对象编程-基础-公有私有-继承-组合,Minxi...

  • Python OOP-1

    0. OOP-Python面向对象 Python面向对象 面向对象编程基础公有私有继承组合,Mixin 魔法函数魔...

  • cpp面向对象

    面向对象编程 [TOC] 类 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 ...

  • Swift Day 21 面向协议编程 POP (重要)

    一、对 POP 的基础认知 1. 什么是面向协议编程?会取代面向对象编程吗? 面向协议编程(Protocol Or...

  • 廖雪峰python3 教程

    观其大纲 1 python基础 2 函数 3 高级特性 4 函数式编程 5 模块 6 面向对象编程 7 面向对象高...

网友评论

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

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