一个类中对于非静态方法主要是用来对类中的类变量进行操作的。
而一个类中的静态方法一般是不会对类中的类变量进行操作的,而是完成一些其他的特殊功能。
在类中写方法时,什么情况下用public,什么情况下用private,什么情况要加static来修饰,做一下总结。通过这些总结,可以检查一下自己写的类的方法中用到的修饰符是否合理
首先要弄清楚一点,类中的静态方法只能访问类中的静态类变量(属性)
下面两种方式的说明:
-----------------------------------------------------------------------方式1------------------------------------------------------------------------------
1.Private和static private总结
如果类中的一个方法只是用来被类中的其他方法调用,那么这个方法就最好用private修饰,如果调用它的那个方法使用static修饰的,那么被调用的方法就要用static private来修饰。凡是使用了private就可以保证在其他类中生成这个类的一个对象后将无法访问到这个方法。而且通过类名也无法访问到static private修饰的方法了。
也就是说,类中的方法只要使用private,它就是为了让类中的其他方法放调用的,而不是为了在其它类调用中实例化一个此类的对象后调用的。而在private前面加上了static那只是因为调用它的那个方法也是用static修饰的,所以这个方法也必须用加上static修饰。当然只用private修饰的方法也可以调用static private修饰的方法。这里又出现一点注意的问题,那就是
2.Public和public static
我们知道,一个方法其实就是为了用来操作类中定义的类变量,或者是完成一个功能的。那么
如果类中的方法操作静态类变量的,那么此方法就必须是静态方法,如果类中的方法不是用来操作静态类变量的(非静态类变量也不能在静态方法中操作),而是为了完成一个与类变量无关的功能,难么方法就最好用static修饰。
如果用public来修饰一个方法时,那就说明这个方法只是用来操作类中的非静态类变量的。我们最好保证,此方法的功能与类中的非静态类变量(类中的属性)有关。而不是这个方法实现了一个功能但却从未用到过类中的类变量。因为我们使用一个public方法,就是为了访问或操作一个对象他自己独有的类变量的。那么想象一下如果你这个方法里面从未出现过类变量,我们每次生成一个对象,这个方法都要被 生成一次,浪费了多少资源,那就不如改成前面说的静态方法了,这样这个方法只生成一次。
-----------------------------------------------------------------------方式2------------------------------------------------------------------------------
如果方法A只用来访问或操作类变量(属性)那么就最好保证方法A用public来修饰
如果方法A中从未操作或访问过类变量(属性)去完成了一个功能,那么最好用public static来修饰。
如果方法A只用来被这个类中的其他方法来调用,那么最好用private来修饰。
如果方法A被这个类中的其他static修饰的方法来调用,那么就必须用static private来修饰
用static修饰的方法A,调用方法B,那么方法B一定要用static修饰,至于使用public static还是private static呢?那分两种情况:(1)如果方法B只是为了提供给方法A或者是与方法A同类的其他方法调用,那么就用private static来修饰。(2)如果方法B除了(1)所描述的情况外,还想对外使用(通过类名调用使用),那么就是用public static来修饰。
-----------------------------------------------------------------------例子------------------------------------------------------------------------------
Public class Character{
private final char value;
//public static修饰的方法完成的功能中一般不包含类变量
public static Character valueOf(char c) {
if(c <= 127) { // must cache
return CharacterCache.cache[(int)c];
}
return new Character(c);
}
//public 修饰的方法用于访问或操作类变量
public int hashCode() {
return (int)value;
}
//public 修饰的方法用于访问或操作类变量
public boolean equals(Object obj) {
if (obj instanceof Character) {
return value == ((Character)obj).charValue();
}
return false;
}
//public static修饰的方法完成的功能中一般不包含类变量
public static String toString(char c) {
return String.valueOf(c);
}
/*static修饰的方法完成的功能中一般不包含类变量,调用此方法的方法用了static修饰,所以此方法也要用static修饰*/
private static int getPlane(int ch) {
return (ch >>> 16);
}
//public static修饰的方法完成的功能中一般不包含类变量
public static boolean isLowerCase(int codePoint) {
int plane = getPlane(codePoint);
}
}
分享到:
相关推荐
Java中的修饰符总结 Java中的修饰符可以分为两大类:访问修饰限定符和非访问修饰限定符。 访问修饰限定符 访问修饰限定符用于控制类、方法、变量的访问权限。Java中的访问修饰限定符有四种:public、private、...
在Java编程语言中,权限修饰符用于控制类、方法、变量等成员的访问级别。这有助于提高代码的安全性和封装性。本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`...
计算机二级摸底测验J继承和接口和java访问权限修饰符总结ava题目
继承和接口和java访问权限修饰符总结 本文总结了 Java 中的继承、接口和访问权限修饰符的概念和使用。继承是 Java 中的一种机制,允许子类继承父类的属性和方法,並且可以对父类的方法进行重写或重载。动态绑定是指...
Java修饰符总结[汇编].pdf
下面是对Java修饰符的详细总结: 1. **类(class)可见性修饰符**: - `public`:类对所有类都是可见的,无论是否在同一包内,可以被导入。 - 缺省(无修饰符):类只对同一包内的类可见,其他包无法直接访问,但...
### Java修饰符总结 #### 一、概述 Java是一种广泛使用的面向对象编程语言,它具有简单、健壮、面向对象和平台无关等特性。在Java中,为了更好地控制类、方法、变量等成员的访问权限以及行为特征,引入了多种修饰...
Java编程语言中的继承、接口和访问权限修饰符是面向对象编程的重要概念,它们共同构建了类与类之间复杂的关联和数据封装。以下是这些概念的详细解释: **多态性**: 多态性允许一个对象引用变量引用不同类型的子类...
本文将对几个常见的Java修饰符进行详细介绍,包括`public`、`private`、`protected`以及一些其他修饰符如`abstract`、`final`、`static`、`volatile`和`transient`等。 #### 1. `public` `public`修饰符是最常用的...
### Java 访问权限修饰符详解 #### 一、引言 Java 作为一种面向对象的...理解并正确使用这些访问权限修饰符对于编写高质量的 Java 程序至关重要。此外,通过合理使用这些修饰符,还可以提高代码的安全性和可维护性。
- 介绍:`native`修饰符标记的方法实际上不在Java代码中定义,而是由本地代码(如C或C++)实现。这些方法通过JNI(Java Native Interface)调用,提供了与底层系统交互的能力。 8. **strictfp**: - 使用对象:类...
《Java主要修饰符的使用》 在Java编程语言中,访问修饰符是控制类、接口、变量和方法的可访问性的关键元素。本篇将详细解析Java中的主要修饰符:public、protected、private以及final和static,并通过实例探讨它们...
在Java编程语言中,`static`关键字是一个非常重要的修饰符,它有多种用途,但最常见的是用来修饰类的方法和变量。在这个主题中,我们将深入探讨`static`修饰方法的概念、作用以及它如何影响Java程序的执行。 首先,...
Java四种访问控制修饰符知识点总结 Java是一种面向对象的编程语言,在Java中,访问控制修饰符是用来控制类、变量、方法的访问权限的。Java提供了四种访问控制修饰符:public、protected、private、default(默认为...
在Java编程语言中,访问修饰符是用来控制类、...总结来说,Java的访问修饰符控制了类的封装性,而静态代码块则提供了一种在类加载时执行初始化逻辑的方式。理解这些概念对于编写符合面向对象原则的高效代码非常重要。
`protected`修饰符是Java中用于控制成员变量和方法访问级别的一个重要工具。当一个成员被声明为`protected`时,它可以在以下几种情况下被访问: 1. **同一类**:`protected`成员在其所在类中可见。 2. **子类**:在...
总结起来,Java中的修饰符和访问修饰符提供了精细的控制,决定了代码的可见性、可继承性、可变性和多线程安全性。理解并恰当使用这些修饰符是编写健壮、安全的Java代码的基础。在实际编程中,根据需求选择合适的修饰...
在Java编程语言中,修饰符是用来控制访问权限和指定类、方法、变量特性的关键词。以下是对Java中常用修饰符的详细解释: 1. **访问修饰符**: - `public`:公共访问修饰符,可以被任何地方的任何代码访问。 - `...