类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有的属性,在内存中只有一个地方存储这个变量。而且所有的实例都可以修改这个类变量的值(前提是这个类变量没有被final修饰,否则是常量了),而且访问类变量的时候不用实例,直接用类就可以了。
类方法:和类变量一样,可以不用实例,直接用类就可以调用类方法。
实例变量:实例域,实例字段,或叫成员变量。
实例方法:或叫成员方法,必须先有实例,然后才能通过实例调用该实例方法。
使用方法:类方法可以直接调用类变量和类方法
类方法不可以直接调用实例变量和实例方法
类方法中没有this,因为没有实例,this不知道调用哪个实例
类方法可以从类里面直接访问类成员
实例方法可以调用类方法,访问类变量,但是不提倡这样做,会把类方法和类变量混淆成实例方法和实例变量
程序实例:
class AnIntegerNamedX {
int x; //这个是成员变量
public int x() { //成员方法
return x;
}
public void setX(int newX) { //成员方法
x = newX;
}
}
public class Practice{
public static void main(String args[]){
AnIntegerNamedX myX = new AnIntegerNamedX();
AnIntegerNamedX anotherX = new AnIntegerNamedX();
myX.setX(1);
anotherX.x = 2;
System.out.println("myX.x = " + myX.x());
System.out.println("anotherX.x = " + anotherX.x());
}
}
2:
class AnIntegerNamedX {
static int x; //这里写成static,结果就变成全是2了,因为类变量是被实例所共享的,包括myX和anotherX
调用anotherX时所有的所有实例都改变了。
public int x() {
return x;
}
public void setX(int newX) {
x = newX;
}
}
public class Practice{
public static void main(String args[]){
AnIntegerNamedX myX = new AnIntegerNamedX();
AnIntegerNamedX anotherX = new AnIntegerNamedX();
myX.setX(1);
anotherX.x = 2; //这里把X的值改成2,所有实例的X都是2了,因为类变量是被所有实例共享的,任何实
例都可以对类变量做最终的修改
System.out.println("myX.x = " + myX.x());
System.out.println("anotherX.x = " + anotherX.x());
}
}
3:同样的,当把那两个方法都加上static变成类方法的时候,会提示错误让你把X变成静态,是应为类方法不能直接访问实例变量!
分享到:
相关推荐
16.6.1 给文档类添加存储线宽的成员 16.6.2 给元素添加线宽 16.6.3 在视图中创建元素 16.6.4 练习使用对话框 16.7 使用微调按钮控件 16.7.1 添加Scale菜单项和工具栏按钮 16.7.2 创建微调按钮 16.7.3 生成比例对话...
16.6.1 给文档类添加存储线宽的成员 16.6.2 给元素添加线宽 16.6.3 在视图中创建元素 16.6.4 练习使用对话框 16.7 使用微调按钮控件 16.7.1 添加Scale菜单项和工具栏按钮 16.7.2 创建微调按钮 16.7.3 生成比例对话...
16.6.1 给文档类添加存储线宽的成员 16.6.2 给元素添加线宽 16.6.3 在视图中创建元素 16.6.4 练习使用对话框 16.7 使用微调按钮控件 16.7.1 添加Scale菜单项和工具栏按钮 16.7.2 创建微调按钮 16.7.3 生成比例对话...
16.6.1 给文档类添加存储线宽的成员 16.6.2 给元素添加线宽 16.6.3 在视图中创建元素 16.6.4 练习使用对话框 16.7 使用微调按钮控件 16.7.1 添加Scale菜单项和工具栏按钮 16.7.2 创建微调按钮 16.7.3 生成比例对话...
16.6.1 给文档类添加存储线宽的成员 16.6.2 给元素添加线宽 16.6.3 在视图中创建元素 16.6.4 练习使用对话框 16.7 使用微调按钮控件 16.7.1 添加Scale菜单项和工具栏按钮 16.7.2 创建微调按钮 16.7.3 生成比例对话...
16.6.1 给文档类添加存储线宽的成员 16.6.2 给元素添加线宽 16.6.3 在视图中创建元素 16.6.4 练习使用对话框 16.7 使用微调按钮控件 16.7.1 添加Scale菜单项和工具栏按钮 16.7.2 创建微调按钮 16.7.3 生成比例对话...
* 在 Java 中,成员变量可以是基本类型或引用类型。 十、其他 * 在 Java 中,类可以让我们用程序模拟现实世界中的实体。 * 对象的行为和属性被封装在类中,外界通过调用类的方法来获得,但是要知道类的内部是如何...
对于访问修饰符,`public`、`protected`和`private`分别代表不同的访问级别,控制类、方法和变量的可见性。`default`访问修饰符(没有明确指定的修饰符)则在同一个包内的类之间提供访问权限。 `*`在import语句中...
- this用来调用当前类的构造方法或成员变量 - super()和this()不能同时出现在一个构造函数中 5. 访问修饰符: - public:公共访问,任何地方都可以访问 - protected:保护访问,同一个包内和子类可以访问 - ...
- **虚函数**:在基类中声明为 `virtual` 的成员函数,允许派生类重新定义。 - **纯虚函数**: - 用 `= 0` 标识,不允许实例化包含纯虚函数的类(抽象类)。 - 目的是为了在基类中预留接口,让派生类实现具体的...
1. **C++基础**:讲解C++的基础语法,包括变量、数据类型、运算符、流程控制语句(如if-else、switch-case、for、while)、函数的声明与定义、数组、指针等。 2. **面向对象编程(OOP)**:深入介绍C++的三大面向...
【项目成员与职责】 项目由朱晨宇担任组长,负责整体管理与协调;王熙林负责项目设计与实现;于鹏则承担项目实现和测试工作。 【系统需求】 游戏运行在具备以下配置的环境下: - 处理器:Intel Xeon E5-2680 2.50...
例如,文档中的`struct A`和`struct B`通过使用`std::tie`来返回不同数量的成员变量组成的元组,展示了变参模板的灵活性和便利性。 其次,文档提到了C++11中的`auto`和`decltype`关键字的结合使用,这使得自动类型...
类是OOP中的核心构造块,它封装了数据(成员变量)和行为(成员函数)。对于游泳池,我们可以有以下数据成员: 1. **容量**:表示游泳池的最大容纳水量。 2. **当前水位**:表示游泳池当前的水位。 3. **是否开放**...
类定义了属性(数据成员)和行为(方法)。 3. **封装**:通过访问修饰符(public、private、protected)实现数据隐藏,保护对象的内部状态不被外部直接修改。 4. **继承**:一个类可以继承另一个类的属性和方法,...
NullPointerException是指空指针异常,例如,访问null对象的成员变量或方法。 2. ArrayIndexOutOfBoundsException ArrayIndexOutOfBoundsException是指数组越界异常,例如,访问数组的越界索引。 3. Arithmetic...
例如,西安交通大学的常象宇博士主讲了第一章“Introduction”,介绍了机器学习的基础理念;西北大学的planktonli老师主讲了第三章“Linear Models for Regression”,讲解了线性基函数模型、正则化方法等。 文档中...
9.1.1 函数内部的静态变量 157 9.1.2 控制连接 160 9.1.3 其他的存储类型指定符 161 9.2 名字空间 161 9.2.1 产生一个名字空间 162 9.2.2 使用名字空间 163 9.3 C++中的静态成员 166 9.3.1 定义静态数据成员的存储 ...
读书会的成立源于群内成员的偶然提议,并最终由一群志同道合的专业人士共同参与,轮流负责讲授各章节的内容。这显示了学习共同体的形成对于深化理解复杂知识体系的重要性。 接下来,针对读书笔记中提及的各章节知识...