zoukankan      html  css  js  c++  java
  • 描述对象

    创建变量

      变量的访问限制有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对象。

      

  • 相关阅读:
    ActiveMQ消息队列技术融合Spring
    ActiveMQ消息队列技术Demo
    网页静态化技术Freemaker
    Solr的基本语法
    Solr的页面展示以及高亮显示
    Solr的了解与配置
    Angular中上传图片到分布式文件服务器FastDFS上
    分布式文件服务器FastDFS的使用
    自我学习笔记01
    数组转换成List集合
  • 原文地址:https://www.cnblogs.com/dulixiaoqiao/p/6416663.html
Copyright © 2011-2022 走看看