变量创建、作用域、修饰符

变量创建:

类型 变量名//创建(声明)某个类型变量
new 类型();//创建某个类型的对象(开辟某个类型空间)
Cat kitty = new Cat();
Cat smokey = new Cat();//创建了两个对象。对它们的引用(地址)被分配给两个不同的变量。
smokey = kitty;//然后我们将变量smokey 设置为对变量kitty 所引用的对象的引用。这两个变量现在都指向第一个创建的对象。
(因为第二个对象不再被任何地方引用,现在被认为是垃圾)
kitty = null;

变量作用域:

  1. 方法中声明的变量从其声明开始到方法结束都存在(可见)。

  2. 在代码块中声明的变量一直存在到代码块的末尾。

  3. 方法的参数在方法中无处不在。

  4. 对象中的变量在包含它们的对象的整个生命周期中都存在。它们的可见性也由特殊的访问修饰符定义:public和private。

  5. 静态(类)变量在程序运行的整个过程中都存在。它们的可见性也由访问修饰符定义。

修饰符

1.公共访问修饰符。

您可以在程序的任何位置使用标有 public 修饰符的变量、方法或类。这是最高级别的访问权限——这里没有任何限制。

2.私有访问修饰符。

您只能在声明它的类中使用带有 private 修饰符标记的变量或方法。对于所有其他类,标记的方法或变量将不可见,就好像它不存在一样。这是最高级别的封闭性——只能在它自己的类内访问。

3.无修饰符。

如果一个变量或一个方法没有用任何修饰符标记,它被认为是用“默认”访问修饰符标记的。此类变量和方法对声明它们的包中的所有类可见。并且仅对它们可见。这种访问级别有时称为“包私有”访问,因为对变量和方法的访问对包含它们的类的整个包是开放的。

引用变量地址问题

1、原始变量包含值(例:Cat),而引用变量(kitty)存储对对象的引用或 null。
2、当分配原始变量时,会复制值。如果分配了引用,则只会复制对象的地址。不会复制对象本身。
示例1m,n不变;
public class References
{
public static void main (String[] args)
{
int m = 5;
int n = 6;

System.out.println("M=" + m + " N=" + n);
swap(m, n);
System.out.println("M=" + m + " N=" + n);

}

private static void swap(int a, int b)
{
int c = a;
a = b;
b = c;
}
}
m依旧指向5,n依旧指向6;
仅分别将值 5 (m) 和 6 (n) 分配给变量 a 和 b; a 和 b 对 m 和 n 一无所知(也不以任何方式影响)。
示例 2
此代码中对象的数据更改
public class Primitives
{
public static void main(String[] args)
{
Student jen = new Student();
jen.name = “Jen”;
jen.age = 21;

Student beth = new Student();
beth.name = "Beth";
beth.age = 15;

System.out.println("Jen is " + jen.age);
System.out.println("Beth is " + beth.age);

ageSwap(jen, beth);

System.out.println("Jen is " + jen.age);
System.out.println("Beth is " + beth.age);

}

private static void ageSwap(Student a,
Student b)
{
int c = a.age;
a.age = b.age;
b.age = c;
}

static class Student
{
String name;
int age;
}
}
对 jen 和 beth 的引用分别分配给变量 a 和 b;a 和 b 更改对象 jen 和 beth 内的值。”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值