zoukankan      html  css  js  c++  java
  • 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)必须是第一句

  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/Tab1994/p/5427640.html
Copyright © 2011-2022 走看看