• java-面向对象(一)


    一、Java面向对象学习的三条主线:

    1.Java类及类的成员:属性、方法、构造器;代码块、内部类
    2.面向对象的三大特征:封装性、继承性、多态性。(抽象性)
    3.其他关键字:this、super、static、final、abstract、interface、package、import等。

    二、“人把大象装进冰箱”

    1.面向过程:强调的时功能行为,以函数为最小单位,考虑怎么做。
    2.面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

    三、面向对象的两个要素:

    类:对一类事物的描述,是抽象的、概念上的定义
    对象:是实际存在的该类事物的每个个体,因而也称为实例(interface)

    二者关系:对象,是有类new出来的,派生出来的。

    面向对象程序设计的重点是类的设计
    设计类,就是设计类的成员。

    属性 = 成员变量 = field = 域、字段
    方法= 成员方法 = 函数 = method
    创建类的对象 = 类的实例化 = 实例化类

    四、面向对象思想落地的实现

    1.创建类,设计类的成员
    2.创建类的对象
    3.通过“对象.属性”或“对象.方法”调用对象结构

    属性(成员变量) vs 局部变量

    1.相同点:

    定义变量的格式:数据类型 变量名 = 变量值
    先声明,后使用
    变量都有其对应的作用域

    2.不同点:

    在类中声明的位置不同

    属性:直接定义在类的一对{}内
    局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量

    关于权限的修饰符不同

    属性:可以在声明属性时,指明其权限,使用权限修饰符(private、public、缺省、protect等)
    局部变量:不可以使用权限修饰符

    默认初始化值的不同

    属性:类的属性,根据其类型,都有默认初始化值。

    整型(byte、short、int、long):0
    浮点型(float、double):0.0
    字符型(char):0(u0000)
    布尔型(boolean):false
    引用数据类型(类、数组、接口):null
    局部变量:没有默认初始化值,意味着我们在调用局部变量之前,一定要显示赋值。
    特别的:形参在调用时,我们赋值即可。

    在内存加载的位置不同

    属性:加载到堆空间中(非static)
    局部变量:加载到栈空间中

    五、类中方法的声明和使用。

    方法:描述类应该具有的功能

    举个栗子

    返回值类型:

    如果方法有返回值,则必须在方法声明时,指定返回值的类型。同时方法中,需要使用return关键字来返回指定类型的变量或常量:“return 数据”
    如果方法有返回值,则声明方法时,使用void来表示。通常,没有返回值的方法中,就不使用return。但是如果使用的化,只能“return;” 表示结束此方法的意思

    形参列表:方法可以声明0个,1个,或多个形参。

    格式:数据类型1 形参1,数据类型2 形参2,...

    六、理解万事万物皆对象

    1.在Java语言范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构

    Scanner,string等
    文件:File
    网络资源:URL

    2.涉及到Java语言与前端Html、后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类、对象

    七、内存解析的说明

    引用类型的变量,只能储存两类值:null 或 地址值(含变量的类型)

    八、匿名对象的使用

    1.理解:我们创建的对象,没有显式的赋给一个变量名。即为匿名对象

    2.特征:匿名对象只能调用一次

    九、方法的重载

    1.定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。

    2.如:Arrays类中重载的sort()/binarySearch()

    方法名:---> 重载列表

    3.可变个数形参的方法

    1.jdk 5.0新增的内容
    2.具体使用:

    可变个数形参的格式:数据类型 ... 变量名
    当调用可变个数形参的方法时,传入的参数可以是0个到多个。
    当可变个数形参的方式与本类中的方法名相同,形参不同的方法之间构成重载
    当可变个数形参的方式与本类中的方法名相同,形参类型也相同的数组不能构成重载,二者不共存
    可变个数形参在方法的形参中,必须声明在末尾,最多只能声明一个可变形参。

    十、方法参数的值传递机制

    关于变量的赋值:

    如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
    如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。

    方法的形参的传递机制:值传递

    形参:方法定义时,声明的小括号内的参数
    实参:方法调用时,实际传递给形参的数据

    值传递机制:

    如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
    如果参数是引用数据类型,此时实参赋给形参的是实参真实存储的数据的地址值。

    十一、递归方法

    递归方法:一个方法体内调用它自身

    方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无需循环控制。

    public int getSum(int n) { //计算1-n之间所有自然数的乘积
    
        if (n == 1) {
            return 1;
        } else {
            return n * getSum(n - 1);
        }
    }
  • 相关阅读:
    WebRTC学习资料大全
    WebRTC学习与DEMO资源一览
    WebRTC MCU( Multipoint Conferencing Unit)服务器调研
    基于Kurento的WebRTC移动视频群聊技术方案
    使用 nginx 和 rtmp 插件搭建视频直播和点播服务器
    利用nginx搭建RTMP视频点播、直播、HLS服务器
    几个学习流媒体的案例代码网址
    rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加
    Neo4j模糊查询及分页查询
    自定义中文全文索引
  • 原文地址:https://www.cnblogs.com/nnadd/p/12357451.html
Copyright © 2020-2023  润新知