Java主要修饰符的使用
java方法的定义格式

java方法的定义格式Java方法是一段可重复使用的代码块,它接收一些输入(参数),并且在执行完一些操作后返回一个结果。
在Java中,方法是面向对象编程的基础。
本文将详细介绍Java方法的定义格式。
一、方法定义的语法在Java中,方法定义由以下几部分组成:修饰符返回类型方法名(参数列表) {// 方法体}其中,修饰符、返回类型和参数列表是可选的。
二、修饰符修饰符用于控制访问级别和行为。
Java中常用的修饰符包括public、private、protected和static等。
1. public修饰符:表示该方法可以被任何类访问。
2. private修饰符:表示该方法只能被同一个类内部的其他方法调用,不能被外部类访问。
3. protected修饰符:表示该方法只能被同一个包内或者子类访问。
4. static修饰符:表示该方法属于类而不是对象,可以通过类名直接调用。
三、返回类型返回类型指定了该方法执行后所返回的数据类型。
如果该方法不返回任何值,则使用void关键字作为返回类型。
常见的返回类型包括int、double、String等基本数据类型以及自定义数据类型。
四、方法名方法名是唯一标识一个方法的名称。
它必须遵循Java标识符的命名规则。
方法名应该能够描述该方法的功能。
五、参数列表参数列表指定了该方法所接收的输入参数。
每个参数由参数类型和参数名称组成,多个参数之间用逗号分隔。
如果该方法不需要接收任何参数,则可以省略参数列表。
六、方法体方法体是一组语句,它们定义了该方法所要执行的操作。
在Java中,方法体必须用花括号包围起来。
如果该方法不需要执行任何操作,则可以将花括号内留空。
七、示例下面是一个简单的Java方法定义示例:public static int add(int a, int b) {int sum = a + b;return sum;}解释:1. 修饰符:public static表示该方法是公共静态的。
java类的访问修饰符总结

java类的访问修饰符总结java的修饰符有:权限修饰符:public、protected、default、private修饰符:abstract、static、finalpublic 使用对象:最广,类、接口、变量、方法protected使用对象:变量、方法注意:不能修饰类(外部类)default 使用对象:类、接口、变量、方法。
(即缺省,什么也不写)private 使用对象:变量、方法注意:不能修饰类(外部类)abstract使用对象:类、接口、方法static 使用对象:类、变量、方法、初始化函数(注意:修饰类时只能修饰内部类)final 使用对象:类、变量、方法transient:告诉编译器,在类对象序列化的时候,此变量不需要持久保存volatile:指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理native:用该修饰符定义的方法在类中没有实现,而大多数情况下该方法的实现是用C、C++编写的。
synchronized:修饰方法,多线程的支持类分外部类和内部类,他们的访问控制是相同的吗外部类是相对于内部类而言的,内部类是定义在类里面的类。
外部类的修饰符有:default(缺省,不写):类定义时前面未加任何修饰符,表示同一个包中可见。
public:修饰类时表示该类能被项目中所有类可见abstract:表示是抽象类final:表示类不可以被继承scrictpf:(java关键字) 当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。
严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示内部类又分:成员内部类、局部内部类、静态内部类、匿名内部类成员内部类:作为外部类的一个成员存在,与外部类的属性、方法并列局部内部类:定义在外部类的方法体里面的类静态内部类:使用static修饰的内部类匿名内部类:就是没有名字的内部类成员内部类修饰符有:public:protected:private:private不能修饰外部类,abstract:final:static:可以当做普通类使用,而不用先实例化一个外部类。
java接口默认修饰符

java接⼝默认修饰符概论: java接⼝可以是public 的,也可以是friendly的,但⼀定是abstracted的。
java接⼝⾥的⽅法只能是public的、abstract的。
java接⼝⾥的成员变量只能是public 的,static 的,final的;并且必须赋初值,否则通不过编译。
C++⽀持多重继承,如果两个⽗类有相同的成员变量,处理起来⽐较困难。
java 接⼝的成员变量之所以这样设计,就是为了解决C++ 中的这个问题。
成员变量必须是static 的,所以接⼝⾥的成员变量就不再属于某个对象,⽽是属于这个接⼝的。
⼦类的对象⾥就没有⽗类的这个成员变量。
那怎样使⽤⽗类⾥的成员变量呢?public interface Father {int i = 0;}public interface Father2 {int i = 2;}public class Son implements Father, Father2 {static int i = 3;public static void main(String[] args) {System.out.println(Father.i);System.out.println(Father2.i);System.out.println(i);}}接⼝问题: 实现两个接⼝,这两个接⼝⾥有两个签名相同,返回值不同的⽅法。
⼀个类同时实现,报错。
package test;public interface InterfaceTest { void todo();}/*** 以下是反编译的内容,接⼝默认是abstract的,* 接⼝⾥的⽅法默认都是public的、abstract的。
*package test;public abstract interface InterfaceTest { public abstract void todo();}*/上⾯⽤得是第三⽅的⼀个反编译⼯具,⽤ Eclipse 反编译插件编译后的结果却不同,如下:package test;public interface InterfaceTest { void todo();}接下来⼀探究竟:1.创建⼀个java 接⼝:public interface TestInterface {void say();}2.为这个接⼝添加⼀个abstract 修饰符public abstract interface TestInterface {void say();}结果⼀切正常,它的实现类运⾏毫不影响。
java 权限修饰符 例子

java 权限修饰符例子Java是一种面向对象的编程语言,具有丰富的权限修饰符,用于控制类、方法和变量的访问权限。
下面是一些关于Java权限修饰符的例子:1. public修饰符:public修饰符表示该类、方法或变量可以被任何其他类访问。
例如:```javapublic class MyClass {public int myVariable;public void myMethod() {// 公共方法的实现}}```2. private修饰符:private修饰符表示该类、方法或变量只能被定义它们的类访问。
例如:```javapublic class MyClass {private int myVariable;private void myMethod() {// 私有方法的实现}```3. protected修饰符:protected修饰符表示该类、方法或变量可以被同一包中的其他类访问,以及继承它的子类访问。
例如:```javapublic class MyClass {protected int myVariable;protected void myMethod() {// 受保护方法的实现}}```4. 默认修饰符(没有显式修饰符):没有显式修饰符的类、方法或变量可以被同一包中的其他类访问,但不能被不同包中的类访问。
例如:```javaclass MyClass {int myVariable;void myMethod() {// 默认方法的实现}```这些权限修饰符可以根据需要来控制类、方法和变量的访问级别。
例如,如果一个类中的方法需要在其他类中使用,可以使用public 修饰符将该方法设置为公共方法。
如果一个类中的变量只能在该类的内部使用,可以使用private修饰符将该变量设置为私有变量。
在实际的开发中,权限修饰符的选择要根据设计需求和安全性考虑。
合理使用权限修饰符可以增强代码的可读性和可维护性,同时也可以提高代码的安全性和封装性。
Java中的权限修饰符(protected)示例详解

Java中的权限修饰符(protected)⽰例详解前⾔权限控制表修饰词本类同⼀个包的类继承类其他类private√×××⽆(默认)√√××protected√√√×public√√√√关于protected最近在看Effective Java时,遇到了⼀个关于protected修饰符的问题。
这个问题中,对于它的认识与我之前对它的认识有⼀些出⼊。
所以在这⾥记录⼀下。
很多介绍Java语⾔的书籍(包括《Java编程思想》)都对protected介绍的⽐较的简单,基本都是⼀句话,就是:被protected修饰的成员对于本包和其⼦类可见。
这种说法有点太过含糊,常常会对⼤家造成误解。
实际上,protected的可见性在于两点:⽗类的protected成员是包内可见的,并且对⼦类可见;若⼦类与⽗类不在同⼀包中,那么在⼦类中,⼦类实例可以访问其从⽗类继承⽽来的protected⽅法,⽽不能访问⽗类实例的protected⽅法。
在碰到涉及protected成员的调⽤时,⾸先要确定出该protected成员来⾃何⽅,其可见性范围是什么,然后就可以判断出当前⽤法是否可⾏。
这⾥有⼀个疑问就是上述结论的第⼆点。
咋⼀看是⽐较绕⼝的,甚⾄有点⽭盾,但是在看了下⾯的⼏个例⼦之后,理解就会更加深⼀点。
⽰例⼀p1/Father1.javapackage basic.testprotected.p1;public class Father1 {protected void f() {} // ⽗类Father1中的protected⽅法}p1/Son1.javapackage basic.testprotected.p1;public class Son1 extends Father1{}p11/Son11.javapackage basic.testprotected.p11;import basic.testprotected.p1.Father1;public class Son11 extends Father1{}p1/Test1.java⾸先看(1)(3),其中的f()⽅法从类Father1继承⽽来,其可见性是包p1及其⼦类Son1和Son11,⽽由于调⽤f()⽅法的类Test1所在的包也是p1,因此(1)(3)处编译通过。
java中修饰符的限制范围

java中修饰符的限制范围Java 是一种面向对象的编程语言,其中修饰符是用于限制代码可见性、修饰类、方法、变量等的重要机制。
掌握不同修饰符的限制范围和应用场景对于Java 开发者至关重要。
一、概述Java 修饰符Java 修饰符分为以下几种:1.访问修饰符:用于控制类、方法、变量的可见性,包括public、private、protected 和默认(friendly)四种。
2.非访问修饰符:包括final、volatile、transient、static、synchronized、native、const 和volatile 等。
二、限制范围的作用访问修饰符的限制范围如下:1.public:表示公共的,可以被任何类访问,包括其他包中的类。
2.private:表示私有,只能在本类中访问。
3.protected:表示受保护,可以被以下三种情况访问:a.同一个包中的类。
b.子类(继承关系)。
c.同一个包中的静态方法。
4.default(友好访问符):表示默认访问权限,相当于protected。
可以被同一个包中的类访问,但不能被其他包中的类访问。
三、不同修饰符的应用场景1.访问修饰符:- public:适用于需要与其他类共享的类、方法或变量。
- private:适用于类的内部实现,建议将私有方法设置为final,以防止子类覆盖。
- protected:适用于需要子类继承或扩展的类、方法或变量。
- default:适用于包内访问,但不希望被其他包访问的类、方法或变量。
2.非访问修饰符:- final:表示不可变,适用于常量、方法(防止被子类覆盖)和类(表示类不可继承)。
- volatile:表示变量在多个线程之间的可见性,适用于共享变量。
- transient:表示变量在垃圾回收时的处理,适用于生命周期较短的变量。
- static:表示静态,适用于静态方法、静态变量,以及类的初始化。
- synchronized:表示同步,适用于需要线程安全的方法或代码块。
Java程序设计语言专升本试题解析
Java程序设计语言专升本试题解析Java程序设计语言是一种非常流行的编程语言,广泛应用于各个领域。
对于那些希望提升自己的技术水平的人来说,参加Java程序设计语言专升本考试是一个很好的机会。
然而,这个考试对于许多人来说可能会比较有挑战性。
本文将为大家解析一些Java程序设计语言专升本试题,希望能够帮助大家更好地准备考试。
[正文]第一题:题目:请简述Java中的四种访问权限修饰符,并给出一个具体的示例。
解析:Java中的四种访问权限修饰符分别是:public、protected、private和default(即默认修饰符)。
这些修饰符用于控制类、方法和变量的可见性.- public:被public修饰的类、方法或变量可以被任何其他类访问。
- protected:被protected修饰的类、方法或变量可以被同一个包中的其他类以及不同包中的子类访问。
- private:被private修饰的类、方法或变量只能被声明它们的类访问。
- default:没有明确声明访问修饰符的类、方法或变量只能被同一个包中的其他类访问。
下面是一个具体的示例:```javapublic class Example {public String publicVariable = "I am a public variable";protected String protectedVariable = "I am a protected variable"; private String privateVariable = "I am a private variable";String defaultVariable = "I am a default variable";public void publicMethod() {System.out.println("This is a public method");}protected void protectedMethod() {System.out.println("This is a protected method");}private void privateMethod() {System.out.println("This is a private method");}void defaultMethod() {System.out.println("This is a default method");}}```在以上示例中,Example类包含了四种不同访问权限修饰符的变量和方法。
JAVA篇:修饰符与接口、类、方法、成员变量、局部变量、方法块
JAVA篇:修饰符与接⼝、类、⽅法、成员变量、局部变量、⽅法块或许这是⼀个⽐较轻松简单的知识点,因为只是简单地做⼀个总览对⽐⽽已。
这周⽐较忙,祝我⾃⼰好运。
有关接⼝(interface)的修饰符,其实⼀般⽤public,也可以不加修饰词(default),或者是使⽤private修饰的声明在类的内部的内部接⼝。
不存在protected修饰的接⼝。
⽽接⼝内部可以有⽤public static final修饰的静态常量,除此之外只存在public修饰的⽅法(接⼝中⽆修饰词的⽅法也默认是public)了。
⽆论是接⼝还是接⼝中的⽅法的abstract修饰词都是隐含的,不必显式地修饰在接⼝或者⽅法前⾯。
类的访问限制修饰词与接⼝⼀样,但是还可以有⾮访问限制修饰词abstract(抽象类)和final(不可继承的类)。
类的成员变量可以被四种访问修饰词修饰,同时也可以被static(静态变量),final(常量),transtient(有关序列化特殊标识变量,具体还需要进⾏了解), volatie(线程共享变量)。
类⽅法除了访问限制修饰符,还可使⽤static(静态⽅法),final(不可改变的⽅法),abstract(抽象的),native(⾮java实现的),synchronized(线程同步),类构造⽅法只可使⽤访问限制修饰符修饰,局部变量只能使⽤final定义常量,⽅法块可以使⽤static定义静态⽅法块和使⽤synchronized 定义线程同步的⽅法块。
java的接⼝、类1、接⼝(interface) 在java中,接⼝是⼀个抽象类型,是抽象⽅法的集合,接⼝通常以interface来声明,接⼝只能包含抽象⽅法和以static\final修饰的变量,⼀个接⼝可以继承(extends)另⼀个接⼝。
接⼝只包含要实现的⽅法,⽽类描述对象的属性和⽅法,两者实现类似但是概念不同。
java提供了类和接⼝之间的实现机制,接⼝不可被实例化,只能被实现(implements),实现接⼝的类必须实现接⼝中全部的抽象⽅法,否则该类必须使⽤abstract声明为抽象类。
java default 修饰 方法
javadefault修饰方法Java编程语言以其强大的功能和灵活性,深受广大开发者喜爱。
而在Java中,方法修饰符是一个重要的概念,它决定了方法的可见性、访问权限以及方法可以被调用的方式。
其中,default修饰符是一种特殊的权限修饰符,它决定了方法是否可以在没有明确指定访问修饰符的情况下被调用。
本文将带你深入了解Java中的default修饰符及其用法。
一、default修饰符的含义在Java中,default修饰符用于定义可以在没有明确指定访问修饰符的情况下被调用的方法。
这意味着这些方法可以被任何其他类访问,只要它们位于同一个包内或者被其他类通过继承访问。
default修饰符允许我们在编写代码时更灵活地组织代码结构,同时也提供了更大的代码复用性。
二、default修饰符的用法1.公共类中的默认方法:在Java8中引入的默认方法和静态导入功能使得公共类中的方法可以被其他类直接调用,而无需明确指定访问修饰符。
这种方式使得代码更加简洁,同时也提高了代码的可读性和可维护性。
例如:```javapublicclassMyClass{publicvoidmyMethod(){//方法实现}}```在这个例子中,我们可以在其他类中直接调用`myMethod()`方法,而无需明确指定访问修饰符。
2.接口中的默认方法:Java8引入的接口默认方法允许我们在接口中定义默认方法实现,这些实现可以被实现该接口的类继承并覆盖。
这种方式使得接口更加灵活,同时也提高了代码的可扩展性和可维护性。
例如:```javapublicinterfaceMyInterface{defaultvoidmyMethod(){//方法实现}}```在这个例子中,我们可以在实现`MyInterface`接口的类中覆盖`myMethod()`方法,以满足具体需求。
三、default修饰符的注意事项虽然default修饰符提供了很大的灵活性,但也需要注意以下几点:1.如果一个类没有明确指定访问修饰符的方法,那么这些方法默认是protected的,可以被同一个包内的其他类访问。
java static修饰符
java static修饰符在Java语言中,没有实际意义上的全局变量,变量最大作用域范围就是类。
如果两个类或多个类之间需要共享数据,单纯依靠参数进行传递,就会花费大量的代码去完成。
实际上,完全可以利用Java语言的静态变量实现数据的共享。
在Java 语言中,被static关键字修饰的块、方法和变量被称为静态块、静态方法和静态变量,应注意以下几个特点:●用static修饰的成员变量表示静态变量,可以直接通过类名来访问。
●用static修饰的成员方法表示静态方法,可以直接通过类名来访问。
●用static修饰的程序代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。
被static所修饰的成员变量和成员方法表明归某个类所有,它不依赖于类的特定实例,被类的所有实例共享,只有这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定位到它们。
1.静态变量静态变量由静态修饰符static来修饰,是类的变量,但不属于任何一个类的具体对象。
类的成员变量有两种:一种是被static修饰的变量,叫类变量或静态变量;另一种是没有被static修饰的变量,叫实例变量。
静态变量和实例变量的区别如下:●静态变量在内存中只有一个拷贝,运行时Java虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。
可以直接通过类名访问静态变量。
●对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响。
2.静态方法由static修饰符修饰的方法称为静态方法,静态方法属于整个类的方法,而不用static修饰的方法,也就是实例方法,是属于某个具体类对象或者实例的方法。
非静态方法是属于某个对象的方法,是在这个对象被创建时,系统为对象的方法在内存中分配单独的专用空间;而静态方法则是属于整个类的方法,它随着类的定义而在内存中进行分配,不属于任何一个对象。
静态方法是属于整个类的,它不能对某个对象的成员变量进行操作和处理,而只能对某个类的成员变量进行操作和处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java主要修饰符的使用武汉理工大学计算机科学与技术学院软件工程1003班王琪琪0121010680319目录1.java主要修饰符----------------------------------32.修饰符的分类------------------------------------3类的修饰符------------------------------------------------------3 方法的控制修饰符------------------------------------------------5 域的控制修饰符--------------------------------------------------73.主要修饰符的使用--------------------------------8一.主要的java修饰符主要的java修饰符分为:访问修饰符(package 、public、private、protect、default(friendly));修饰符(final、static、abstract)。
在java中default这个修饰符并没有显式的声明。
而不同的修饰符其使用对象不大一样,主要对象有:类、接口、方法、变量、初始化函数等。
二.修饰符的分类JAVA程序在定义类时,除了使用class关键字标识之外,还可以在class关键字标识之前增加若干类的修饰符来修饰限定所定义的类的特性。
类的修饰符分为访问控制符和非访问控制符两大类,有些类的修饰符也可以用来修饰类中的域或方法。
1.类的修饰符分为:可访问控制符和非访问控制符两种。
可访问控制符是:公共类修饰符 public非访问控制符有:抽象类修饰符 abstract ;最终类修饰符final1 )公共类修饰符 public : Java 语言中类的可访问控制符只有一个: public 即公共的。
每个 Java 程序的主类都必须是 public 类作为公共工具供其它类和程序使用的应定义为 public 类。
2 )抽象类修饰符 abstract :凡是用 abstract 修饰符修饰的类,被称为抽象类。
所谓抽象类是指这种类没有具体对象的一种概念类。
这样的类就是 Java 语言的 abstract 类。
3 )最终类修饰符 final :当一个类不可能有子类时可用修饰符 final 把它说明为最终类。
被定义为 final 的类通常是一些有固定作用、用来完成某种标准功能的类。
4 )类缺省访问控制符:如果一个类没有访问控制符,说明它具有缺省的访问控制符特性。
此时,这个类只能被同一个包中的类访问或引用。
这一访问特性又称为包访问性。
2.方法的控制修饰符也分为:可访问控制符和非访问控制符两类。
可访问控制符有 4 种:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: protected ;私有保护访问控制符: private protected非访问控制符有 3 种:抽象方法控制符: abstract ;静态方法控制符: static ;最终方法控制符: final1 )抽象方法控制符 abstract :用修饰符 abstract 修饰的方法称为抽象方法。
抽象方法是一种仅有方法头,没有方法体和操作实现的一种方法。
2 )静态方法控制符 static :用修饰符 static 修饰的方法称为静态方法。
静态方法是属于整个类的类方法;而不使用 static 修饰、限定的方法是属于某个具体类对象的方法。
由于 static 方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量,即 static 方法只能处理static 的域。
3 )最终方法控制符 final :用修饰符 final 修饰的方法称为最终方法。
最终方法是功能和内部语句不能更改的方法,即最终方法不能重载。
这样,就固定了这个方法所具有的功能和操作,防止当前类的子类对父类关键方法的错误定义,保证了程序的安全性和正确性。
所有被 private 修饰符限定为私有的方法,以及所有包含在final 类 ( 最终类 ) 中的方法,都被认为是最终方法。
3.域的控制修饰符也分为:可访问控制符和非访问控制符两类。
可访问控制符有 4 种:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: protected ;私有保护访问控制符: private protected非访问控制符有 2 种:静态域修饰符: static ;最终域修饰符: final1 )公共访问控制符 public :用 public 修饰的域称为公共域。
如果公共域属于一个公共类,则可以被所有其它类所引用。
由于public 修饰符会降低运行的安全性和数据的封装性,所以一般应减少 public 域的使用。
2 )私有访问控制符 private :用 private 修饰的成员变量( 域 ) 只能被该类自身所访问,而不能被任何其它类 ( 包括子类 ) 所引用。
3 )保护访问控制符 protected :用 protected 修饰的成员变量可以被三种类所引用:①该类自身;②与它在同一个包中的其它类;③在其它包中的该类的子类。
使用修饰符 protected 的主要作用是允许其它包中它的子类来访问父类的特定属性。
4 )私有保护访问控制符 private protected :用修饰符private protected 修饰的成员变量可以被该类本身或该类的子类两种类访问和引用。
5 )静态域修饰符 static :用 static 修饰的成员变量仅属于类的变量,而不属于任何一个具体的对象,静态成员变量的值是保存在类的内存区域的公共存储单元,而不是保存在某一个对象的内存区间。
任何一个类的对象访问它时取到的都是相同的数据;任何一个类的对象修改它时 , 也都是对同一个内存单元进行操作。
6 )最终域修饰符 final :最终域修饰符 final 是用来定义符号常量的。
一个类的域 ( 成员变量 ) 如果被修饰符 final 说明,则它的取值在程序的整个执行过程中都是不变的。
7 )易失( 共享) 域修饰符volatile :易失( 共享) 域修饰符volatile 是用来说明这个成员变量可能被几个线程所控制和修改。
也就是说在程序运行过程中,这个成员变量有可能被其它的程序影响或改变它的取值。
因此,在使用中要注意这种成员变量取值的变化。
通常volatile 用来修饰接受外部输入的域。
8 )暂时性域修饰符transient :暂时性域修饰符transient 用来定义一个暂时性变量。
其特点是:用修饰符transient 限定的暂时性变量,将指定Java 虚拟机认定该暂时性变量不属于永久状态,以实现不同对象的存档功能。
否则,类中所有变量都是对象的永久状态的一部分,存储对象时必须同时保存这些变量。
下面,主要介绍一下public修饰符、protected修饰符、private修饰符、static修饰符、final修饰符、abstract修饰符的使用。
三.主要修饰符的使用及编码实验1.public修饰符:使用对象:类、接口、成员。
可以被任何类访问。
Java的类是通过包的概念来组织的,包是类的一个松散的集合。
处于同一个包中的类可以不需要任何说明而方便的互相访问和引用,而对于不同包中的类,则不行。
但当一个类被声明为public时,他就就有了被其他包中的类访问的可能性,只要这些其他包中的类在程序中使用import语句引入public类,就可以访问和引用这个类。
类中被设定为public的方法是这个类对外的接口部分,避免了程序的其它部分直接去操作类内的数据,这实际就是数据封装思想的体现。
用public修饰的类的域称为公共域。
如果公共域属于公共类,则它能被所有的其他类所引用。
Public修饰符会造成安全性的数据封装性的下降,所以一般应减少public域的使用。
例子如下:package pkg2;import pkg1.function;public class ClassC extends function {public ClassC(String puVar) {super(puVar);// TODO Auto-generated constructor stub }/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubClassC cs=new ClassC("zilei");System.out.println(cs.puVar);cs.print();}}运行结果如下:protected修饰符:使用对象:成员用protected修饰的成员变量可以被同一包中的所有类访问、可以被所有子类访问、子类没有在同一包中也可以访问。
使用protected修饰符的主要作用是允许其他包中该类的子类来访问父类的。
例子如下:public class Testprotected {protected int x = 1;protected int y = 1;protected void showX(){System.out.println("From A, x=" + x);}protected void showY(){System.out.println("From A, y=" + y);}public static void main(String[] args){//System.out.println("From B,y=" + );new Testprotected().showX();new Testprotected().showY();new B().showY();}}class B extends Testprotected{protected void showY(){ //重定义类方法showYSystem.out.println("From B, y=" + y);}//private static int y = 2;//new Testprotected().showY();}运行结果如下:以上例子说明:用protected修饰的成员变量可以被所有子类访问,也可以被子类修改。
例如:public class Testprotected {protected int x = 1;protected int y = 1;protected void showX(){System.out.println("From A, x=" + x);}protected void showY(){System.out.println("From A, y=" + y);}public static void main(String[] args){//System.out.println("From B,y=" + );new Testprotected().showX();new Testprotected().showY();new B().showY();}}class B extends Testprotected{protected void showY(){ //重定义类方法showYSystem.out.println("From B, y=" + y);}private static int y = 2;//new Testprotected().showY();}运行结果如下:3.static修饰符static用来修饰内部类,方法,字段。