• java初学者笔记总结day5


    面向对象的相关的概念

    :抽象的,描述了该类的所有对象具有的数据和功能,
    类是模版。

    对象:具体的,体现了对应类里的数据和功能,任何一个具体
    的事物都可以对应为某一个类的对象。


    面向对象编程:把程序用的数据和功能分配到不同类中,通过对象去体现。

    解决复杂的业务问题

    a)把复杂的问题进行分解--》利用面向对象编程分解
    b)每一个具体的问题处理---》利用面向过程


    使用类


    定义类

    语法
    class 类名{
    //数据--成员变量
    语法:[修饰符] 数据类型 变量名1 [=值1],...;

    //功能--成员方法(不加static的方法)

    语法:
    public 返回值类型 方法名(参数列表){
    }

    }


    类是抽象的-》通过对象才能体现其数据和功能


    创建对象

    new 类名(构造器参数列表);
    创建对象
    1)开辟内存空间,在堆里创建一个对象
    2)返回刚创建的对象地址

    对象不能直接使用---》通过引用才能使用

    定义引用

    语法:类名 引用变量名;

    引用操作对象-》需要和对象有关系-》通过赋值建立关系(引用把对象地址存储起来)

    语法:类名 引用变量名=new 类名(构造器参数列表);


    引用怎么操作对象的数据和功能
    语法:引用.数据或功能

    对象和引用的对比
    1)对象存储在堆中,存储真实的业务数据
    2)引用如果是局部变量,存储在栈中,存储是对象的地址。

    简单理解:对象类似于电视,引用类似于电视的遥控器。


    内存分析

    速度 存储内容
    栈: 块 局部变量
    堆: 慢 new 的对象


    局部变量和引用变量存储位置

    a)局部变量在栈中
    b)成员变量在堆中

    基本类型和引用类型存储的数据
    a)基本类型存储的是业务数据
    b)引用类型存储的是地址


    注意点
    1)方法在调用的时候,参数传递,实际参数给形式参数赋值
    2)对象可以被多个引用所指向 ,其中一个引用改变了对象,其他引用也可见。
    3)一个引用也可以指向多个对象,但是同一时刻只能指向一个对象。

    构造器

    作用:在创建对象为对象初始化数据(成员变量)。

    定义构造器
    语法:
    public 类名(参数列表){
    //构造器初始化代码
    }

    创建对象的过程
    1)开辟内存空间,在堆里创建一个对象
    2)通过刚创建的对象,调用匹配参数的构造器
    3)返回刚创建的对象地址


    注意点:
    1)构造器定义后,不能直接用对象调用-在new对象的时候自动调用
    2)不能有返回值类型-》默认为void(不能写),可以写return;(提前结束构造器)
    3)名字必须和类名相同(区分大小写)
    4)没有定义构造器,会自动添加空构造器,一旦显示添加构造器,那么就不会自动添加
    空构造器,而空构造器通常需要使用(a)继承 b)反射...),所以需要手动添加空构造器


    构造器重载:多个构造器参数不同,则形成重载

    构造器重载好处:根据不同的对象初始化需求选择不同构造器。

    this关键字

    理解
    1)系统自动定义的当前类(this所在类)类型的引用变量。
    2)this指向的对象:当前对象(调用了当前方法的对象)
    3)当前方法:成员方法,构造方法,构造块,(不能是static 块和方法)。


    this的使用
    1)this.成员变量
    2)this.成员方法
    3)this(构造器参数);---》在构造器中调用其他构造器,重载已有构造器代码
    语法:
    1)必须是构造器
    2)必须是第一句

  • 相关阅读:
    清除 Windows 系统垃圾的 bat
    java通过System.getProperty获取系统属性
    【转】Angular之constructor和ngOnInit差异及适用场景
    p中不能包含div
    How to make PostgreSQL functions atomic?
    How to chain a command after sudo su?
    javascript柯里化
    如何在Angular优雅编写HTTP请求
    angular default project (angular.json的解读)
    error:crosses initialization of ...的解决办法
  • 原文地址:https://www.cnblogs.com/Tab1994/p/5427640.html
Copyright © 2020-2023  润新知