类与方法

方法

概念:将某一部分功能抽取出来,可以达到抽取、区分、分类的作用,

成员变量(属性)
直接定义在类当中,在方法外边。

成员方法(行为)
public static void 方法名(){}
成员方法不要写static关键字

public class Student{
    
    //成员变量
    String name;
    int age;
    
    //成员方法
    public void eat(){
        System.out.println("4564");
    }
}
成员变量与局部变量区别:

1.定义位置不一样
局部变量:方法的内部
成员变量:方法的外部,直接写在类中。

2.作用域不一样
局部变量:只有在方法中才可以使用,出了方法不能再使用(方法的参数就是局部变量)
成员变量:整个类全都可以通用。

3.默认值不同
局部变量:无默认值,必须手动赋值
成员变量:有默认值,规则和数组一样。

4.内存的位置不一样
局部变量:在方法中,跟着方法一起在栈内存。
成员变量:位于堆内存。

5.生命周期不一样
局部变量:随着方法进栈诞生,随着方法出栈而消失
成员变量:随着对象创建诞生,随着对象被垃圾回收而消失。

类需要创建一个对象才能能使用:

1.导包

import 包名称.类名称
对于和当前类属于同一个包的情况,可以省略导包语句不写。

2.创建

格式:

//类名称   对象名  =   new   类名称();
  Student  stu    =   new   Student();
//根据Student类创建了一个stu的对象
3.使用

使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名(参数)
(想用谁,就用对象点谁)

方法的重载(overload)
多个方法名称一样,参数列表不一样,修饰符不一样也可以,即有没有public 和 static 都可以重载。
相关(可以使用重载):
1.参数个数不同
2.参数类型不同
3.参数的多类型顺序不同
无关(代码会冲突):
1.参数的名称无关
2.与方法的返回值类型无关

//方法自己根据参数列表,调用对应的方法
public static void main{
    System.out.println(sum(10, 20));
    System.out.println(sum(10, 20 ,30));
}
public static int sum(int a, int b){
    //方法体
}
public static int sum(int a, double b, int c){
    //方法体
}

Java的内存划分

1.栈(stack)

存放的都是方法中的局部变量。
方法运行一定要在栈当中
局部变量:方法的参数,或者是方法{}内部的变量;
作用域:一旦超出作用域,立刻从栈内存中消失。

2.堆(Heap)
凡是new出来的东西,都存放在堆当中。
堆内存里面的东西都有一个地址值:16进制;
对于对象来说,它的成员方法保存的其实是个地址值
堆内存里面的数据,都有默认值。规则:

 整数   ---- 0
 浮点数 ---- 0.0
 字符   ---- '\u0000'
 布尔   ---- false
 引用类型---- null
 

3.方法区(Method Area)
存储.class相关信息,包含方法的信息。

4.本地方法栈(Native Method Stack)
与操作系统相关。

5.寄存器(PC Register)
与CPU相关。


waikiki
4 声望2 粉丝