关于类和对象:
在一个文档文档中定义多个类的时候 只能类名和文档名相同的类才可以被public 修饰
类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);
对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。
关于成员变量与局部变量:
成员变量 存放于堆中 作用域:当前类中 有默认初始值为0,故可以不用赋初值;
局部变量 存放于栈中 作用域:当前方法里,故可以与成员变量同名 无默认初始值,必须赋初值
public class VarDemo1 { //类
//成员变量
int num;//堆 在当前类
public void show(){
//局部变量 作用域 只能在当前的方法里面有效
int num = 100;
//调用局部变量
System.out.println(num);//局部变量 就近原则
//成员变量调用
//VarDemo1 varDemo1 = new VarDemo1(); //实例化对象
//this 表自己 那个对象实例化就代表那代个
System.out.println("===="+this.num);
}
}
关于实例化:
VarDemo demo = new VarDemo();
VarDemo demo1 = new VarDemo();
方法中实例化对象,其中demo和demo1是new出来的地址,存放着类里面的变量和方法
尽管demo和demo1都是new的同一个类,但是其地址是不同的,故demo==demo1返回是false,但是其指向的内容是一样的
在内存中的分配:demo存于栈中,new VarDemo()存于堆中,VaeDemo类中的方法存于方法区中
注:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)。(后续跟进该知识点)
方法的调用 demo.方法名
其中
匿名调用 用在只调用方法一次的时候 匿名对象可以当参数传递
new VarDemo().show();
this的用法:
static:
static方法称作静态方法
静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的
在静态方法中不能访问类的非静态成员变量和非静态成员方法
要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成 员方法/变量的
另外关于内存中的堆、栈,到现在还不是很清楚,先放一放。。。