你如何使变量class级别?
How do you make a variable class level?
如何制作变量 class 级别?这个词是什么意思?我被告知为了在不同的 class 中使用字符串全名,我需要使变量 class 级别并添加一个 getter 方法?任何人都可以解释这个概念的含义以及它是如何正确完成的吗?下面列出了来自 class 的代码。
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;
}
}
}
变量是class级别,因为它在class的范围内。但是,它有 private 修饰符,因此没有其他 class 可以访问它。
此方法是您要让另一个 class 访问您的字段的方法:
public class SaxHandler extends DefaultHandler {
...
private String fullname;
public String getFullname()
{
return fullname;
}
...
}
这个概念就是封装。您希望 class 的内部工作受到限制,这样它就不会被 class 之外的东西破坏。因此,您提供了一个 getter 方法来 return 通过值 对字段 的引用,以便它不能从外部修改。
Class 级别可能意味着以下两种情况之一:
- class 中的一个静态变量,它是 class
的所有实例的变量的单个实例
- class 中的一个 class 成员变量,最终成为 class 的每个实例的一部分。
两者的区别在于是否使用static修饰符。如果使用它的一个 class 变量,如果不使用它的一个成员变量。您可以在 getter 方法上使用类似的修饰符来指示是否需要 class 的实例来访问变量。
如何制作变量 class 级别?这个词是什么意思?我被告知为了在不同的 class 中使用字符串全名,我需要使变量 class 级别并添加一个 getter 方法?任何人都可以解释这个概念的含义以及它是如何正确完成的吗?下面列出了来自 class 的代码。
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;
}
}
}
变量是class级别,因为它在class的范围内。但是,它有 private 修饰符,因此没有其他 class 可以访问它。
此方法是您要让另一个 class 访问您的字段的方法:
public class SaxHandler extends DefaultHandler {
...
private String fullname;
public String getFullname()
{
return fullname;
}
...
}
这个概念就是封装。您希望 class 的内部工作受到限制,这样它就不会被 class 之外的东西破坏。因此,您提供了一个 getter 方法来 return 通过值 对字段 的引用,以便它不能从外部修改。
Class 级别可能意味着以下两种情况之一:
- class 中的一个静态变量,它是 class 的所有实例的变量的单个实例
- class 中的一个 class 成员变量,最终成为 class 的每个实例的一部分。
两者的区别在于是否使用static修饰符。如果使用它的一个 class 变量,如果不使用它的一个成员变量。您可以在 getter 方法上使用类似的修饰符来指示是否需要 class 的实例来访问变量。