1.一个程序class文件只有一个,但对象可以有多个,对象共用方法区。
2.成员变量和局部变量的区别
(1).再类中的位置不同
成员变量:类中,方法外
局部变量:方法中或方法声明上(形式参数)
例:public class Variable{ //类
int x; //成员变量
public void show(){ // 方法
int y;//局部变量
(2).在内存中位置不同
成员变量:堆内存
局部变量:栈内存
(3).生命周期不同
成员变量随着对象的创建而存在,随着对象的消失而消失。
局部变量随着方法的调用而存在,随着方法调用的完毕而消失。
(4).初始化值不同
成员变量:有默认值
局部变量:无默认值,必须先定义,赋值,最后使用。
3.Private关键字的使用
private:是一个修饰符
可以修饰成员变量,也可以修饰成员方法;被private修饰的成员只能在本类中被访问。
针对private修饰的成员变量,我们会提供getXxx()和setXxx()用于获取和设置成员变量值,方法用public修饰。
例:public class Student {
private String name;
private int age;
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
public void setAge(int a){
age = a;
}
public int getAge(){
return age;
}
}
----------------------------------------------------------------------------------------------------------------------------------------------
public class StudentDemo {
public static void main(String[] args) {
Student s = new Student();
s.setName("原宇浩");
s.setAge(19);
System.out.println(s.getName()+"------"+s.getAge());
}
}
4........两个引用同时指向一个堆内存
public class Phone {
public static void main(String[] args) {
//创建对象
Phone_lei p = new Phone_lei();
//调用成员变量
p.name = "华为";
p.color = "星耀黑";
p.price = 6999;
System.out.println("品牌:"+p.name);
System.out.println("颜色:"+p.color);
System.out.println("价格:"+p.price);
//调用成员方法
p.call("傻小子");
p.SendMassage();
p.PlayGame();
System.out.println("---------------");
//两个引用指向同一个对象
Phone_lei p2 = p;
p2.name = "三星";
p2.color = "深空灰";
p2.price = 5999;
System.out.println("品牌:"+p.name+"颜色:"+p.color+"价格:"+p.price);
System.out.println("品牌:"+p2.name+"颜色:"+p2.color+"价格:"+p2.price);
p2.call("傻小子");
p2.SendMassage();
p2.PlayGame();
}
}
//两个引用同时指向一个堆内存那么无论哪个对堆内存(new Phone)进行操作,另一个都会受到影响
网友评论