第二周学习总结
一、方法
方法是一组为了实现特定功能的代码块的集合。
(一)功能
①:结构化代码
将代码按照功能进行组织,使代码的结构比较清晰,容易阅读和修改,也就是程序的可维护性强。
②:减少代码重复
一个固定的功能,可能会在程序中多次使用,在使用时只需要调用写好的方法,而不用重复书写对应的功能代码。
(二)注意
①:逻辑严谨
方法实现的一个完整的功能,所以在书写时要考虑到各种可能的情况,并对每种情况做出恰当的处理。
②:可重复利用
方法实现的是一种功能,在实际实现时,可以根据需要,使方法具备一定的通用性。
(三)声明一个方法的具体语法格式
public static 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,){
执行语句
return 返回值;
}
(四)使用
![](https://img2022.cnblogs.com/blog/2913877/202207/2913877-20220709174441280-1427509655.png)
(五)方法重载
方法重载的要求是两同一不同:同一个类中方法名相同,参数列表不同。至于方法的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。
1 package Java_1;
2
3 public class HelloWorld {
4 public static void main (String [] args){
5 int a = 1, b = 2;
6 double c = 1, d = 2;
7 System.out.println(add(a,b));
8 System.out.println(add(c,d));
9
10 }
11 public static int add(int a,int b){
12 int c = a + b;
13 return c;
14 }
15 public static double add(double a,double b){
16 double c = a + b;
17 return c;
18 }
19 }
(六)方法的值传递
Java中只有值传递
只传值不会改变原数据大小,可通过值改变.
二 、内存
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。
堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或者对象,引用变量就相当于是为数组或者对象起的一个名称。
三、面向对象
(一)类和对象
类:类是一个模板,它描述一类对象的行为和状态
对象:对象是类的一个实例,有状态和行为。
创建一个简单的类来理解下 Java 中类的定义:
1 public class Dog {
2 3 int size;
4 String colour;
5 int age;
6
7 void eat() {
8 }
9
10 void run() {
11 }
12
13 void sleep(){
14 }
15
16 void name(){
17 }
18 }
(二)变量类型
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
(三)构造方法
每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
在做项目时,习惯同时写无参构造,和有参构造
1 public class Student{
2 public Student(){
3 }
4
5 public Student(String name){
6
7 }
8 }
(四)对象构造
在Java中,使用关键字 new 来创建一个新的对象。
声明:声明一个对象,包括对象名称和对象类型。
实例化:使用关键字 new 来创建一个对象。
初始化:使用 new 创建对象时,会调用构造方法初始化对象。
1 public class Sutdent {
2 public Sutdent(int age){
3 //这个构造器仅有一个参数:name
4 System.out.println("学生的年龄 : " + age );
5 }
6 public static void main (String [] args){
7 Sutdent ming = new Sutdent( 13 );
8
9 }
10 }
(五)就近原则,this关键字
(六)三种情况内存分析图
(七)基本数据类型和引用数据类型
预计下周学习:
字符串