Java中有哪些修饰符关键词?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强> Java基础之修饰符关键词整理强>
我成为一个Java程序员距今已有一段时日。最近,有人问我关于Java修饰符关键字的一个问题,但我根本不知道那是什么,所以我觉得除了实际编程和算法,我也有必要学习这些内容。
通过谷歌搜索,我只得到一些琐碎的要点,并不完整,所以我以此主题写了这篇文章。这也是一个可用于测试你的计算机科学知识的面试问题。
Java修饰符是你添加到变量,类和方法以改变其含义的关键词。它们可分为两组:
- <李>访问控制修饰符李> <李>非访问修饰符
李,>
让我们先来看看访问控制修饰符,以及如何使用它们的一些代码示例。
修饰符说明公共公共可见私人类可见保护包和所有的子类可见那么如何使用这三种访问控制修饰符呢?请看下面两个类,请忽略此处代码的低效,因为这是教程。
创建一个名为项目/mypackage/人。java文件,并添加以下代码:
包mypackage; 类人{ 私人字符串firstname; 私人字符串姓; 保护无效setFirstname(字符串firstname) { 这一点。firstname=firstname; } 保护无效setLastname(字符串lastname) { 这一点。lastname=姓; } 保护字符串getFirstname () { 返回this.firstname; } 保护字符串getLastname () { 返回this.lastname; } }
上面的类有变量和方法。这意味着这些变量将只能从类访问,方法将只能从mypackage包访问。
接下来创建一个名为项目公司/mypackage。java的文件,并添加以下代码:
包mypackage; 进口java.util。*; 公共类公司{ 私人ArrayList人; 上市公司(){ 这一点。人=new ArrayList (); } 公共空间addPerson(琴弦firstname、lastname) { 人p=new (); p.setFirstname (firstname); p.setLastname(姓); this.people.add (p); } 公共空间printPeople () { for (int i=0;我& lt;this.people.size ();我+ +){ System.out.println (this.people.get(我).getFirstname () +“;“;+ this.people.get(我).getLastname ()); } } }
上面的类是公共的,因此它可以从包内部和外部的任何类进行访问。它有一个只能在类内访问的私有变量,以及一堆的公共方法。由于类和类共享相同的包,所以类可以访问类以及所有它的方法。
为了完成访问控制修饰符的示范,让我们在一个新项目/MainDriver的。java文件中创建一个驱动程序类:
进口mypackage。*; 公开课MainDriver { 公共静态void main (String [] args) { 公司c=new (); c.addPerson (“Nic",“Raboy"); c.printPeople (); 人p=new (); p.setFirstname (“Maria"); p.setLastname (“Campos"); } }
请记住,由于类是公共的,所以我们在添加和打印人的时候没有问题。然而,由于人类是受保护的,所以我们会得到一个编译时错误,因为不是包的一部分。
现在,让我们来看看现有的非访问修饰符,以及如何使用它们的一些示例代码。
修饰符说明静用于创建类,方法和变量最终用于最终确定类,变量和方法的实施方式文摘用于创建抽象方法和类同步用于多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作不稳定的一个变量声明为不稳定,就意味着这个变量是随时会被其他线程修改的,因此不能将它在缓存线程记忆中。那么如何使用这五个非访问修饰符呢?
Java中静态修饰符的一个很好的例子就是:
int max=Integer.MAX_VALUE int数值=Integer.parseInt (“1234“);
在上面的例子中,请注意我们利用了整数类中变量和方法,而不是先实例化。这是因为那些特定的方法和变量都是静态的。
文摘修饰符则略有不同。你可以创建一个带方法的类,但它们基本只能定义。你不能对它们添加逻辑,例如:
{抽象类形状 文摘int getArea(宽度int, int高度); }
然后在子类里,你才可以增加例如下面这样的代码:
类矩形形状延伸{ 高度宽度int getArea (int, int) { 返回宽*高; } }
下面要讲synchronized和volatile讲修饰符。