贵阳市公共住宅投资建设集团官方网站,外贸网站推广招聘,网站上的动态图怎么做的,政务网站建设需求分析文章目录变量相关概念变量/常量类变量/静态变量成员变量/实例变量类属性/实例属性/对象属性什么是 field成员变量和类变量的区别两个变量的生命周期不同访问方式不同数据存储位置不同方法相关概念示例代码判断题变量相关概念
变量/常量
所谓变量就是指可以改变的数据量#…
文章目录变量相关概念变量/常量类变量/静态变量成员变量/实例变量类属性/实例属性/对象属性什么是 field成员变量和类变量的区别两个变量的生命周期不同访问方式不同数据存储位置不同方法相关概念示例代码判断题变量相关概念
变量/常量
所谓变量就是指可以改变的数据量即数值可以改变。 所谓常量就是指不可以改变的数据量即数值不可以改变可以称为“常数”也可以称为“定数”与之相反的是变量。
类变量/静态变量
类变量是由 static 修饰的变量也称为静态变量可以通过类名访问也可以通过实例对象来访问通过对象访问也只是编码阶段这样写而已在编译的时候会被自动转换成“类名称.变量名”的语法格式。
静态变量也叫字段field。
成员变量/实例变量
所谓“成员变量”就是类的成员的变量。类的成员就是类的实例对象每个实例都有的变量叫成员变量。
非 static 修饰的变量都叫成员变量也叫实例变量也可以叫对象变量很少这样叫只能通过“实例对象”访问。
成员变量也叫字段field。
只有当为成员变量添加 get/set 方法时我们才称该成员变量是类的属性。
类属性/实例属性/对象属性
类属性就是实例属性也叫对象属性是根据 get 方法得来的。
类属性的定义规则get 方法名去掉 get 后将剩余部分首字母小写得到的字符串就是这个类的属性。
例如类 Person 含有方法 getName()那么 name 就是该类的属性了。
下面例子中属性名和成员变量名相同都是 n
public class Test {private String n; // n是成员变量public String getN() { // n是类的属性return n;}public void setN(String n) {this.n n;}
}注属性名和成员变量名通常情况下相同这符合 JavaBean 规范。
下面例子中属性是 name成员变量 n 不是类的属性
public class Test {private String n; // n不是类的属性public String getName() { // name是类的属性return n;}public void setName(String n) {this.n n;}
}注上述例子的写法不推荐不符合 JavaBean 的规范但是我们要理解。
下面的例子中我们称 username 为只读属性因为只能通过 get 方法访问没有提供写入的方法
public class Test {private String userName; // userName是成员变量public String getUserName(){ // userName是类的属性return aaa; }
}什么是 field
类中方法外声明的所有变量静态变量、成员变量、常量就是 field中文译为“字段”或“域”通常称为“字段”。方法的参数、方法内的局部变量不可以称为 field。
class A {private int a; // private field 私有域protected double b; // protected field 保护域public String c; // public field 公共域A d; // default access field 默认访问域public static Object e; // public static field 公共静态域
}成员变量和类变量的区别
两个变量的生命周期不同 成员变量随着实例的创建而存在随着实例对象的回收而消失 静态变量随着类的加载而存在随着类的消失而消失
访问方式不同 成员变量只能通过对象来访问 静态变量可以通过对象来访问也可以通过类名来访问通过对象访问只是在编码阶段编译期会转换成“类名.变量名”的语法格式
数据存储位置不同 成员变量存储在堆内存的对象中所以也叫对象的特有数据 静态变量存储在方法区共享数据区的静态区所以也叫对象的共享数据
方法相关概念
非静态的方法都叫成员方法必须通过对象才能调用。包含非静态的私有方法、公共方法、保护方法、默认访问权限的方法。私有方法比较特殊只能通过本类的方法进行调用但是也必须通过对象才能调用。
静态的方法也叫类方法只能通过类名进行调用即便编码时通过对象调用静态方法编译时也会转换成“类名称.静态方法名”的语法格式。
示例代码
package priv.lwx.javaprac.variable;
public class User {public static final String SKIN_COLOUR yellow; // 这是常量因为值不变也叫类变量也叫静态变量使用static修饰仅有一份所有实例共享也叫字段field不可以称为类属性因为没有对应的get方法不可以称为成员变量因为是通过类名访问不需要通过对象访问和对象无关public static String nationality china; // 这叫类变量也叫静态变量也叫字段field不是成员变量也不是类属性private String name; // 只能通过对象访问所以是成员变量也叫实例变量也叫字段field但是比较特殊因为是私有的所以只能由本来的方法才能访问本类的方法也是通过对象才能访问public String getName() { // name是类的属性也可以称为实例属性、对象属性在Java中类的属性不是看变量而是看get方法return name;}public void setName(String name) {this.name name;}
}判断题
1.static 修饰的变量叫类变量也就是类属性 答错。不是类属性属性看 get 方法
2.非 static 修饰的叫成员变量也叫实例变量也叫实例属性 答错。不是实例属性属性看 get 方法
3.类属性就是实例属性 答对
4.有人说 static 修饰的变量才叫 field有人说方法内声明的变量不能叫 field参数也不能叫 field 答错。类中方法外面声明的所有变量叫 field
5.类属性就是实例属性 答对
6.实例属性就是类属性 答对
7.实例属性就是类的成员变量 答错因为实例属性是根据 get 方法得来的和类声明的变量无关
8.实例属性就是类变量或者实例变量也叫成员变量 答错因为实例属性是根据 get 方法得来的和变量无关。有 static 修饰的变量叫类变量没有 static 修饰的变量叫实例变量。
9.Java 类属性是如何定义的 答类属性的定义规则是将 get 方法名去掉 get 后将剩余部分首字母小写得到的字符串就是这个类的属性也叫实例属性。
10.类的成员变量就是类属性 答错。类属性和变量无关而是根据 get 方法得到类的属性。
11.类属性一定是类的成员变量 答错。类属性和变量无关
12.类属性一定是类变量 答错。类属性是根据 get 方法得到的属性和变量没有半毛钱关系。类变量是静态变量。
13.类变量就是类属性 答错。类变量是指 static 修饰的变量也叫静态变量。而类属性则是根据 get 方法得来的两者不是同一个概念