目录
本周:
这周进入了新的月份,12月是年终的最后一个月,临近期末。
说实话,在这回家的第一周我更懒了,课程也拖了很多进度,每天都有大把的时间浪费。
-真的好讨厌冬天,太冷了。
正文:
Part1 :类与对象
Java程序基于类。Java是面向对象的语言,对象需要类的生产。
类即将有共同特性的对象的属性提取出来,把类实体化即为对象。类是抽象的、概念的,对象是具体的、实际的。类是对象的模板,对象是类的一个实体。
属性是类的一个组成成分,可以是基本数据类型也可以是引用数据类型。如果属性不赋值,有默认值。
*创建对象: 类名 对象名 = new 类名();
*访问属性: 对象名.属性名;
*栈内存:在方法中定义的一些基本数据类型的变量和对象的引用变量都在栈内存中分配。在代码块里定义一个变量是Java就在栈内存里为这个变量分配内存空间,当超出变量作用域后,Java会自动释放掉为该变量分配的内存空间。
*堆内存:用来存放发由new运算符创建的数组或对象,即它们在队中分配的内存,并由Java虚拟机的垃圾回收器自动管理。
*方法区:常量池(常量,比如字符串),类加载信息。
*类的数据类型之间的传递属于引用传递,同数组。
Part2:成员方法
*方法的定义:
public 返回数据类型 方法名(形参列表){ //方法体
语句;
return返回值;}
-return语句不是必须的。如果方法是void则方法体中不需要写return语句或只写return;
*方法不能嵌套使用。
*方法调用过程:
-当程序调用到方法时,会在栈内开辟出一个新的独立空间。
-当方法执行完毕时,或执行到return语句时,就会返回,返回到调用方法的地方。
-优点:提高代码复用性,可实现代码的封装。
*调用说明:
-同一个类中的方法直接调用即可。
-跨类中的方法调用需要通过对象名调用。
*形参:方法定义是的参数
实参:方法调用时的参数
*方法传参机制:
-基本数据类型是值传递,形参的改变不会影响到实参。
-引用数据类型是地址传递,形参的改变会影响实参。
*方法递归的规则:
-执行一个方法时,就创建一个新的栈空间
-方法的局部变量是独立的,不会相互影响
-注意引用数据类型的地址传递
-递归必须次昂退出递归的条件逼近,以防出现无限递归。
-当一个方法执行完毕后或遇到return时,返回到调用这个方法的地方,该方法也执行完毕。
*经典的递归问题:
-迷宫问题:
-斐波那契数列
-汉诺塔
-八皇后游戏
https://blog.csdn.net/qq_45629699/article/details/109146182
(因为我不会)
*方法的重载:
-方法名必须相同
-形参列表必须不同(类型、顺序、个数至少有一个不同。参数名可以相同。)
*可变参数:
-Java中允许同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。
-语法:访问修饰符 返回类型 方法名(数据类型... 形参名){}
-可变参数本质就是数组,实参可以为数组。
-可变参数可以和普通类型的参数放在一个形参列表当中去,但是一定要将可变参数放在最后。
-一个形参列表当中只能有一个可变参数。
*作用域:
-全局变量 : 也就是属性,作用域为整个类体。内存区域在堆内存中。
-局部变量 :除了属性之外的其他变量。作用域是定义的它的代码块中。内存区域在栈内存中。
-注意全局变量可以不赋值,直接使用。因为有默认值。但是局部变量必须赋值,无默认值。
*构造方法/构造器:
-类的一种特殊方法,主要作用是完成对新对象的初始化。
-特点:1.方法名和类名重名。
2.没有返回值。
3.在创建对象时,系统会自动地调用该类的构造器完成对象的初始化。
-构造器的修饰符可以默认。
-一个类可以定义多个不同的构造器,构成构造器的重载。
-若没有定义构造方法,系统会自动给类生成一个默认的无参构造方法,也叫做默认构造方法。
-构造器时完成对象的初始化,不是创建对象。在构造器被调用的时候,对象已经创建了。
-可使用javap进行反编译查看。
*this关键字:
-代表当前对象
-简单来说:哪个对象调用,this就代表哪个对象
(可使用.hashCode()显示地址)
*this使用:
-语法:访问成员方法 this.方法名(形参列表);
访问构造器 this(形参列表);
-this关键字可以用来访问本类的属性、方法、构造器
-this用于区分当前类的属性和局部变量
-this不能在类定义的外部使用,只能在类定义的方法中使用。
详细使用:https://blog.csdn.net/qq_21225505/article/details/88017889