在Java中内存主要分为栈和堆
栈中主要存储变量和对象的内存地址,堆中主要存储new 对象;
String a="asdff"; String a=new String("asdffg");的区别:
前者是将数值都存放到栈内存中;后者是将String的方法和数值都存放到堆中,栈中只存放堆中的内存地址。
对象的认识:
对象是一个抽象得存在,对成员变量,成员方法,局部变量,构造方法。在Java中分别代表程序的哪些,如下所示:
public class People {
/*
* 成员变量
*/
String name; //姓名
int weigth; //体重
/**
* 构造方法
* 作用:用来初始类对象
* 特点:1.修饰public
* 2.不写返回值
* 3.方法句与类名相同
*
*/
public People(String n,int w){
int age = 23; //局部变量
name = n;
weigth = w;
System.out.println("执行构造方法 People()");
}
/*
* 成员方法
*/
public void loseWeigth(){
System.out.println(name+"体重"+weigth+"kg,经过减肥降到45kg");
}
/*
* 静态方法
*
* 显示体重
*/
public static void getWeight(){
System.out.println("显示体23kg");
}
}
静态方法的调用:
类名 方法名;
可以不用进行实例化,经过static修饰的成员和方法,只能由静态方法调用。
修饰符:
public :公共的,代表可以在任何类中调用。
private :私有的,代表只可以在本类中调用。
不写 :默认,可以在本类和一个包下调用。
protected:保护的,代表可以在本类,一个包下和子类调用。
构造方法的重载:
默认是一个无参无返回的构造方法;可以根据参数的不同进行重载。
this关键字:this.name
1、代表本类 下的成员变量。
2、当出现标识符相同时,用来区分变量。
3、代表构造方法的调用