类与方法
方法
概念:将某一部分功能抽取出来,可以达到抽取、区分、分类的作用,
成员变量(属性)
直接定义在类当中,在方法外边。
成员方法(行为)
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相关。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。