面向对象(2):成员变量和局部变量的区别
面向对象(2):成员变量和局部变量的区别
1、一个手机对象
手机:
属性:品牌,颜色,价格
行为:打电话,发短信,学习
Phone:
成员变量:brand,color,price
成员方法:call,sendMessage,study
//定义一个手机类
public class Phone {
//定义成员变量
String brand;
String color;
int price;
//定义成员方法
public static void call(String s){
System.out.println("给"+s+"打电话");
}
public static void sendMessage(String m){
System.out.println("给"+m+"发短信");
}
public static void study(){
System.out.println();
}
}
//测试手机类(定义一个测试类,类名不要和手机类名一样)
class Phone02{
public static void main(String[] args) { //测试类需要main方法
//创建一个手机对象(想要调取手机类中的东西,必须要创建手机对象)
//创建手机对象的类名要和手机类的名字一样:Phone
//然后给手机对象起个名字叫pp
Phone pp = new Phone();
//给成员变量赋值
pp.brand ="苹果";
pp.color ="土豪金";
pp.price =6999;
System.out.println(pp.brand);
System.out.println(pp.color);
System.out.println(pp.price);
//调用成员方法
pp.call("伟爷");
pp.sendMessage("伟爷");
pp.study();
}
}
执行结果为:
苹果
土豪金
6999
给伟爷打电话
给伟爷发短信
Process finished with exit code 0
2、一个测试类中,两个手机对象,可以同时调用一个方法
创建两个手机对象,证明出了两个手机对象,可以同时调用一个方法
手机:
属性:品牌,颜色,价格
行为:打电话,发短信,学习
Phone:
成员变量:brand,color,price
成员方法:call,sendMessage,study
//定义一个手机类
public class Phone {
//定义成员变量
String brand;
String color;
int price;
//定义成员方法
public static void call(String s){
System.out.println("给"+s+"打电话");
}
public static void sendMessage(String m){
System.out.println("给"+m+"发短信");
}
public static void study(){
System.out.println();
}
}
//测试手机类
class Phone02{
public static void main(String[] args) {
//创建第一个手机对象
Phone pp = new Phone();
//给成员变量赋值
pp.brand ="苹果";
pp.color ="土豪金";
pp.price =6999;
//赋值后输出一下
System.out.println(pp.brand);
System.out.println(pp.color);
System.out.println(pp.price);
//调用成员方法
//因为定义成员方法的时候,括号里加了String s
//所以调用方法的时候,括号里要加字符串
pp.call("伟爷");
pp.sendMessage("伟爷");
pp.study();
//创建第二个手机对象
Phone pp1 = new Phone();
//给第二个成员变量赋值
pp1.brand = "华为";
pp1.color ="黑色";
pp1.price = 4999;
System.out.println(pp1.brand);
System.out.println(pp1.color);
System.out.println(pp1.price);
//调用成员方法
pp1.call("老李");
pp1.sendMessage("老王");
pp1.study();
}
}
执行结果为:
苹果
土豪金
6999
给伟爷打电话
给伟爷发短信
华为
黑色
4999
给老李打电话
给老王发短信
Process finished with exit code 0
3、成员变量与局部变量的区别
1、在类中的位置不同:
成员变量:定义在类中方法外
局部变量:定义方法内或者方法声明上
====例:成员变量==============================================
class VariableDemo {
int a;//直接在类中定义的叫成员变量
====例:局部变量==============================================
public static void main(String[] args) {
int a = 20;//在方法里面定义的叫局部变量
System.out.println(a);
}
2、在内存中的位置不同:
成员变量:堆内存:
随着对象在堆内存中的创建而出现,成员变量也在堆内存中出现
局部变量:栈内存:
由于方法执行是在栈中执行,所以在方法中定义的局部变量也存在栈里
3、生命周期不同:
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4、初始化值不同:
成员变量:有默认的初始化值(系统值)
局部变量:没有默认的初始化值,必须先定义,赋值,才能使用(没有系统值)
成员变量的名称可以和局部变量的名称一样
方法与方法之间的局部变量不可以相互访问,因为作用域的范围不同

浙公网安备 33010602011771号