我是靠谱客的博主 细心未来,这篇文章主要介绍关键字private、static总结,现在分享给大家,希望可以做个参考。

private

private在英文中是私有的意思,在Java中它用来修饰成员变量,是成员变量私有化,下面先举个列子。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Film{ private String name; private int price; public void show(){ System.out.println(name+"------"+price); } } public class CsdnPrivate { public static void main(String[] args) { Film s = new Film(); s.name="动物世界"; s.price=35; s.show(); } }

上面代码运行出来的结果是:
这里写图片描述
由运行结果看到private访问受控,所以private只能在本类中进行运用操作。

下面是正确操作的代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Film{ private String name; private int price; public Film(){} public String getName(){ return name; } public void setName(String name){ this.name=name; } public int getPrice(){ return price; } public void setPrice(int price){ this.price=price; } } public class CsdnPrivate { public static void main(String[] args) { Film s = new Film(); s.setName("动物世界"); s.setPrice(35); System.out.println(s.getName()+"-----"+s.getPrice()); } }

这里写图片描述
由上述代码可以看到使用了setXXX()/getXXX()来操作private修饰的成员变量,setXXX()方法是是带参的,将变量传进来,getXXX()将赋值了的变量传出来。因此private只能在本类中进行运用。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Film{ private String name; private int price; static String country; public Film(String name,int price){ this.name=name; this.price=price; } public Film(String name,int price,String country){ this.name=name; this.price=price; this.country=country; } public void show(){ System.out.println(name+"----"+price+"----"+country); } } public class CsdnPrivate { public static void main(String[] args) { Film s1 = new Film("动物世界",35,"中国"); s1.show(); Film s2 = new Film("心理罪",30); s2.show(); Film s3 = new Film("南极之恋",25); s3.show(); } }

当用private修饰成员变量时,也可以使用带参的构造方法。上面两种方法都可以使用。

static

static在英文中的意思是静止的,不变的。static修饰的变量成为静态变量。
下面是static修饰的变量的例子:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Film{ private String name; private int price; static String actor; public Film(String name,int price,String actor){ this.name=name; this.price=price; this.actor=actor; } public void show(){ System.out.println(name+"----"+price+"----"+actor); } } public class CsdnPrivate { public static void main(String[] args) { Film s1 = new Film("动物世界",35,"李易峰"); s1.show(); } }

这里写图片描述
从上面的运行结果来看,static的作用相当于c语言中的全局变量,当给它赋值后,后面再出现它修饰的变量值一律为第一次赋的初值。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Film{ private String name; private int price; static String country; public Film(String name,int price){ this.name=name; this.price=price; } public Film(String name,int price,String country){ this.name=name; this.price=price; this.country=country; } public void show(){ System.out.println(name+"----"+price+"----"+country); } } public class CsdnPrivate { public static void main(String[] args) { Film s1 = new Film("动物世界",35,"中国"); s1.show(); Film s2 = new Film("心理罪",30); s2.show(); Film s3 = new Film("南极之恋",25); s3.show(); System.out.println("-----------------------"); Film s4 = new Film("暮光之城",28,"美国"); s4.show(); Film s5 = new Film("超人总动员",38); s5.show(); } }

这里写图片描述
从上面结果看出当static修饰的成员变量变化时,后面出现的变量都发生了改变。

  在所有程序编译运行的过程中,变量都是由系统自动分配内存进行存储的。 在这个存储过程中,static所修饰的变量(也就是静态变量),它所被分配的空间是一直伴随程序运行的,空间将会保持到程序的结束关闭,才会被释放。换句话说:程序运行时,系统分配给静态变量的内存是一直存在的,除非程序被终止。根据这一点来看,假若在定义一个类的过程中,定义了一个static修饰的变量,那么这个类在被加载的同时,被static修饰的变量就存在于内存当中了,这样一来就独立于该类的所有对象,被该类所有对象共享,将对象相关的变成了类相关,所以静态变量也可以称之为类变量。假设一个类中某个属性被static所修饰,那么就可以通过”类名.属性名“来访问。

下面是static修饰的变量,通过类名.属性名来访问的例子。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Arrary{ static int a=10; static int b=20; int c; public static void add(){ c=a+b; System.out.println(c); } } public class StaticDemo { public static void main(String[] args) { Arrary.add(); } }

这里写图片描述
由上面的运行错误可知static修饰的方法里引用的变量也必须是静态的。
所以 int c要改为static int c。

最后

以上就是细心未来最近收集整理的关于关键字private、static总结的全部内容,更多相关关键字private、static总结内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部