2015-07-13 75 views
1

你如何製作變量班級?這個詞是什麼意思?我被告知爲了在不同的類中使用字符串全名,我需要創建變量類級別並添加getter方法?任何人都可以解釋這個概念是什麼意思,以及如何正確完成?下面列出了相關課程的代碼。你如何製作一個可變的課程級別?

public class SaxHandler extends DefaultHandler { 
    private String artifactIdTag = "close"; 
    private String versionTag = "close"; 

    private String fullname; 
    public String getFullname() { 
     return fullname; 
    } 

    private boolean inDependency=false; 

    private boolean inProperties= false; 

    public void startElement(String uri, String localName, 
      String qName, Attributes attributes) 
      throws SAXException { 


     if (qName.equalsIgnoreCase("properties")) { 
      inProperties = true; 
     } 

     if (qName.equalsIgnoreCase("artifactId")) { 
      artifactIdTag = "open"; 
     } 
     if (qName.equalsIgnoreCase("version")) { 
      versionTag = "open"; 

     } 
     if (qName.equalsIgnoreCase("dependency")) { 
      inDependency=true; 
     } 
     if (inProperties) { 

      System.out.println("startElement property"); 
     } 

    } 

    private String artifact=null; 
    private String version=null; 
    public void characters(char ch[], int start, int length) 
      throws SAXException { 


     if (inProperties) { 

      artifact = new String(ch, start, length); 

      System.out.println("property characters: "+artifact); 
     } 


     if (artifactIdTag.equals("open")) { 
      artifact = new String(ch, start, length); 
      version=null; 

      artifact = artifact.replace("-${org.springframework.version}", ""); 
      System.out.print("artifactId: " + artifact); 

     } 
     if (versionTag.equals("open")) { 
      version = new String(ch, start, length) + ".jar"; 

      version = version.replace("-${org.springframework.version}", ""); 


      String fullname=artifact +"-" +version; 
      if (inDependency && !(artifact == null || version == null)){ 
      fullname = fullname.replace("-${org.springframework.version}", ""); 
      fullname = fullname.replace("-${spring.security.version}", ""); 
       System.out.printf("%-15s %n", fullname); 
       FileNameStorage.add(fullname); 
      } 
     } 

    } 

    public void endElement(String uri, String localName, 
      String qName) throws SAXException { 

     if (qName.equalsIgnoreCase("artifactid")) { 
      artifactIdTag = "close"; 
     } 
     if (qName.equalsIgnoreCase("version")) { 
      versionTag = "close"; 
     } 
     if (qName.equalsIgnoreCase("dependency")) { 
      inDependency=false; 
     } 
     if (qName.equalsIgnoreCase("properties")) { 
      inProperties = false; 
     } 

    } 

} 
+1

你寫這個了嗎? –

回答

3

該變量是類級別,因爲它在類的範圍內。但是,它具有專用修飾符,所以其他類都不能訪問它。

這種方法是你想給另一個類訪問你的領域是什麼:

public class SaxHandler extends DefaultHandler { 

... 
    private String fullname; 

    public String getFullname() 
    { 
     return fullname; 
    } 
... 
} 

這個概念是封裝。你想要一個班級的內部工作受到限制,這樣班級以外的事情就不會被打破。因此,您提供了一個getter方法,以的值返回對字段的引用,以便它不能從外部修改。

+0

getter方法的調用方式與常規方法不同嗎? – FullNelson

+0

Thre沒有區別 –

0

類水平可能意味着兩種情況之一:

  1. 類內的靜態變量,它是變量的類的所有實例的單個實例
  2. 類中的一類成員變量最終成爲該班的每個實例的一部分。

兩者之間的區別在於您是否使用了靜態修飾符。如果使用它的類變量,如果不是它的一個成員變量。你會在getter方法上使用類似的修飾符來指示是否需要訪問變量的類的實例。

相關問題