Java基础第三天【1】

该文档是:Luo学习Java笔记...(该文章有点长分为三部分)

博客连接:https://www.loveuluo.cn

日期:2020-10-23

1.Java方法详解

image-20201023085715084

1.1 方法的定义

image-20201023090413825

形参和实参

image-20201023090539815

1.2 方法的调用

image-20201023091335486

1.3 方法的重载

image-20201023091539435

如下图,相当于名字相同的方法 形参不同。(比如是两个int 和三个int的方法就属于重载,调用方法时会自动根据你传入的实参选择对应的方法,返回值可以相同也可以不相同)

image-20201023092758040

总结:

image-20201227142533707

1.4 可变参数

image-20201023101040599

1.5 递归

(1)方法递归的理解:

image-20201227141835729

image-20201227141852020

递归没有结束条件的时候会发生栈内存溢出错误:

image-20201227142009750

(2)递归计算1到n的和 代码和内存图:

image-20201227142128571

内存图:

image-20201227142147874

(3)递归实现阶乘递归理解:

image-20201023123825802

(4)递归总结:

image-20201227142505234

2. 面向对象概述和对象的创建

2.1 面向对象和面向过程的区别

image-20201227144428406

2.2 OOA OOD OOP

image-20201227145820712

2.3 面向对象三大特征概述

image-20201227150159869

2.4 类和对象的概念

image-20201227150636598

2.5 java软件工程师在开发中起到的一个作用是什么?

image-20201227151255280

image-20201227151347111

2.6 类的定义

image-20201227152809497

请大家观察“学生对象1”和“学生对象2”的共同特征,然后再利用java语言将该“学生类”表述/表达出来。(这里只表达属性,不表达方法.)

image-20201227152743079

2.7 对象的创建

image-20201227154913487

编译的过程:

image-20201227155126016

2.8 创建对象对应的JVM内存结构

Student对象模版:

image-20201103210628373

image-20201103211033927

创建Student对象:

new的动作最先执行,执行完成后将右边的值赋值给左边

image-20201103211813901

image-20201103211620064

image-20201103212020164

2.9 构造方法

什么是构造方法:

image-20201227160605139

构造方法代码:

image-20201227160702428

构造方法测试:

image-20201227160728463

构造方法的默认值和赋值时间:

image-20201227160952859

构造方法总结:

image-20201227161150641

3. 面向对象三大特征之封装

3.1 封装有什么用?

image-20201227162108357

3.2 不封装有什么问题

image-20201227162323081

3.3 怎么进行封装

image-20201227162415147

3.4 什么是实例方法

image-20201227162550571

3.5 封装总结

image-20201227162927354

4. 面向对象之static关键字

4.1 static概述

image-20201112094549987

image-20201112094809105

4.2 变量什么时候用静态什么时候不用

image-20201112102426599

当country不是用static的时候的内存图情况:

image-20201112100129309

构造方法:

image-20201112100352244

测试类

image-20201112100818135

内存图(第一步是类先加载到方法区):

image-20201112100757750

当country用static的时候的内存图情况:

image-20201112100938431

构造方法(有参构造方法里不需要传入静态变量了):

image-20201112101132575

测试类:

image-20201112102252565

内存图:

image-20201112102038094

4.3 空引用访问静态不会空指针

image-20201112103103403

image-20201112103249671

Chinese类:

image-20201112103124677

结论:

image-20201112103321660

4.4 静态方法和实例方法

image-20201112104705918

image-20201112104538404

结论:

image-20201112104856581

4.5 方法什么时候使用静态什么时候不用

image-20201112155507592

image-20201112155306807

image-20201112155334433

分析打印名字用不用静态,答案是不用,因为其中的name是实例变量,是new对象的时候才有的变量,而用了static等于说是User.name,

自然会报错。

image-20201112160028866

4.6 静态代码块

image-20201112161623876

image-20201112161547637

4.7 静态的玩意的执行顺序

image-20201112164051403

静态变量和静态代码块的执行顺序先后按照代码的上下顺序决定。但静态的不论是什么不论在哪一行永远比实例变量先执行,

因为类加载的时候就会加载静态的。

image-20201112163733764

总结:

image-20201112164024680

小题目:

image-20201112165927811

4.8 . 实例代码块

image-20201112165351012

可能出现一种情况,写了很多构造方法,例如每个构造方法里边的前几行代码相同,可以提取出来放入实例代码块中,

每次执行构造方法的之前都会执行实例代码块。

image-20201112164748748

5. 面向对象之this关键字

5.1 this的应用

测试类(this只能使用在实例方法,谁调用这个实力方法,this就是谁,例如下边的c1.shopping,c1调用了shopping方法,那么

shopping方法中的this就代表了c1,c1的name是张三,那么this.name就是c1的name也就是张三):

image-20201113094808358

this.是可以省略的,在实例方法(构造方法)中 ,name其实是自带了this. ,不过省略了,默认还是访问“当前对象”的 name,

而在静态方法中不能访问name,因为this代表的是当前对象,而静态方法的调用不需要对象,矛盾了。

image-20201113094824531

什么时候定义为实例方法,什么时候定义为静态方法:

image-20201113095854674

this内存图:

image-20201113090438456

5.2 方法中访问变量的规律

image-20201113100805609

5.3 什么时候不能省略this

image-20201113142433707

因为构造方法里的形式参数要传的两个参数名称和实例变量的名称一样,要用this.区分开来,否则name=name就是自己等于自己

public class User {
    String name;//实例变量name
    int age; 
    public User(){ //无参构造方法
    }
    public User(String name,int age){ //有参构造方法
        //this.作用是区分局部变量和实例变量。
        this.name=name; //就近原则 所以这里name的是局部变量name
        this.age=age;
    } //get、set方法同理
}

5.4 this()的用法

image-20201113144556611

this()是通过一个构造方法去调用当前类的另一个构造方法

image-20201113144752586

对this()的调用必须是构造器中的第一个语句(首行),只能写一行。否则会报错。例如:

image-20201113144248658

image-20201113144407822

5.5 this总结

image-20201113144944291

最后修改:2021 年 10 月 24 日 07 : 48 PM
如果觉得我的文章对你有用,请随意赞赏