关于类和对象: 在一个文档文档中定义多个类的时候 只能类名和文档名相同的类才可以被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的 在静态方法中不能访问类的非静态成员变量和非静态成员方法 要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成 员方法/变量的 另外关于内存中的堆、栈,到现在还不是很清楚,先放一放。。。