• 描述对象


    创建变量

      变量的访问限制有public、protected或private,后两者提供了更严格的访问限制;

      protected变量只能在其所有的类、该类的子类以及同一个包(package)的其中使用。包是一组用于完成相同目标的相关类。通过在JAVA程序中使用import和*,如import java.util*,就可以在程序中很容易地引用包中的所有类。

      private变量的访问限制比protected变量更严格,只能在其所属的类中使用。除非对变量做任何修改都不会影响类的功能,否则应将变量声明为private或protected

      还有一种访问控制类型:创建变量时不指定public、private或protected。没有设置访问控制时,变量只能在同一个包的类中使用。这被称为默认访问控制或包访问控制

    创建变量

      有时属性与整个类而不是特定对象相关联,它们称之为类变量。而且整个类只有该变量的一个拷贝。

      创建类变量时指定使用关键字static。如static int virusCount = 0;

      修改类变量的方法与修改对象变量完全相同。如果有一个名为tuberculosis的Virus对象,可以使用下面的语句来修改类变量virusCount:

      tuberculosis.virusCount++;

      由于类变量用于整个类而不是特定对象,因此可以直接使用类名:

      Virus.virusCount++;

      这两条语句完相同的工作,但处理类变量时使用类名有个优点,即表明virusCount是个类变量而不是对象变量。如果处理类变量时使用对象名,在不仔细查看类的源代码的情况下,将无法确定是类变量还是对象变量。

      类变量也称为静态变量。

      警告:

        尽管类变量很有用,但是也不要过度使用它。因为这些变量在类运行之时就会一直存在。如果类变量中存储的是一个大型的对象数组,则会占据很大的一块内存,而且不会将其释放掉。

    用方法来创建行为

      属性用于记录有关对象类的信息,但是要让类实现它的目的,必须创建行为。行为描述了类中完成特定任务的不同部分,每一部分都称为方法。

      声明方法

        创建方法的语句与创建类的语句有点类似,它们都可以在名称后面的括号中指定参数,都使用大括号"{"和"}"指示开始和结束。不同之处在于,方法可以在执行完毕后返回一个值,返回值可以是简单类型(如整数或布尔值),也可以是对象。

        public boolean infectFile(String filename) {
            boolean success = false;
            return success;
        }

      上述方法,返回值为boolean,如果方法不应该返回值,则方法名前面使用void关键字。

      当方法返回值时,可以将方法用于表达式中,也可用于程序中任何可以使用变量的地方。

      参数不同的类似方法

        在类中,不同的方法有不同的名称,但如果接受不同的参数,方法也可以同名。

        如果两个方法接受的参数数量不同或参数类型不同,它们可以同名。

        传递给方法的参数称为方法签名。

      构造函数

        在程序中创建对象时,使用关键字new。使用关键字new时,将调用类的一个特殊方法,该方法称为构造函数,因为它处理创建对象所需做工作。构告这函数用于设置对象正常工作所需的变量及方法。

        与其他方法类似,通过使用不同的参数,可以在同一个类中定义多个构造函数。

        警告:

          如果超类中定义了带有一个或多个参数的构造函数,则类不再从其超类中继承无参数的构造函数。出于这个原因,当你的类有其他构告这函数时,你必须总是定义一个无参数的构造函数。

      类方法

          与类变量相似,类方法提供与整个类而不是特定对象相关联的方法。当方法不影响单个对象时,将其声明为类方法。

          要将方法声明为类方法,在方法名前使用关键字static

      方法中变量的作用域

        当在类的方法中创建变量或对象时,它们只在该方法内可用。

        程序中的大括号"{"和"}"定义变量了的作用域。在大括号内创建的任何变量不能在大括号外使用

        作用域规则使程序更容易调试,因为作用域限制了变量的使用区域,这避免了在其他编程语言中最常见的一种错误:在程序的不同部分以不同的方式使用相同的变量。

      将一个类放在另一个类中

        虽然JAVA程序也称为类,但很多时候一个程序需要多个类才能完成其工作。包含多个类的程序有一个主类和任意数目的辅助类组成。

        将程序分成多个类时,有两种方法可用于定义辅助类

     1 public class Wrecker {
     2     String author = "Ignoto";
     3     
     4     public void infectFile() {
     5         VirusCode vic = new VirusCode(1024);
     6         System.out.println(vic.vSize);
     7     }
     8 }
     9 
    10 
    11 class VirusCode{
    12     int vSize;
    13     
    14     VirusCode(int size) {
    15         vSize = size;
    16     }
    17 }

      通常在同一个源代码文件中定义辅助类,因为它们用于辅助目的。源文件编译后,将生成多个类文件。

      警告:

        如果在同一个源文件中定义了多个类,只能有一个类为public,其他类在它们的类语句中不能指定为public。另外,源代码文件的名称应与它定义的public类的名称匹配。

      创建一个主类和一个辅助类时,也可以将辅助类放在主类中。在这种情况下,辅助类称为内部类。内部类放在另一个类的左大括号和右大括号之间。

      

     1 public class Wrecker {
     2     String author = "Ignoto";
     3     
     4     public void infectFile() {
     5         VirusCode vic = new VirusCode(1024);
     6         System.out.println(vic.vSize);
     7     }
     8     //内部类
     9     class VirusCode{
    10         int vSize;
    11         
    12         VirusCode(int size) {
    13             vSize = size;
    14         }
    15     }
    16 }
    View Code

      内部类的使用方法与其他辅助类相同,主要差别(除位置外)出现在编译之后。内部类没有使用class语句来指定名称,而是名称中包含了主类的名称。在上一个示例中,编译器将生成Wreaker.class和Wreaker$VirusCode.class。

    使用关键字this

      由于可以同时引用其他类的变量和方法以及当前类的变量和方法,所以有时候引用的变量将不清楚。为了使变量引用更清晰,一种解决办法是使用关键字this,它引用程序本身的对象。

      使用对象的方法或变量时,将对象名放在变量名或方法名之前,并用句点隔开。

      通过使用this,可以明确地指出要引用的变量或方法。在类中,可以this代替对象名。

      在很多情况下,无需使用this就能清晰地引用对象的变量或方法。然而,使用this确保引用明确也没有什么害处。

      当设置对象的变量值时,这个this关键字将在构造函数中发挥作用。

    使用类方法和类变量

      使用类方法和类变量不必创建一个对象。

      由于类变量和类方法不与特定对象相关联,不需要仅为使用它们而创建对象。Integer.parseInt()方法的使用就是一个例子,你不需要为将字符串转换为整数而创建一个新的Integer对象。

      

  • 相关阅读:
    896. Monotonic Array单调数组
    865. Smallest Subtree with all the Deepest Nodes 有最深节点的最小子树
    489. Robot Room Cleaner扫地机器人
    JavaFX
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
    《Python CookBook2》 第一章 文本
  • 原文地址:https://www.cnblogs.com/dulixiaoqiao/p/6416663.html
Copyright © 2020-2023  润新知