Java中类的静态成员
java中类的用法
java中类的用法Java是一种面向对象的编程语言,类是面向对象编程的基本概念之一。
在Java中,类是一种模板,它用来描述一类对象的方法和属性。
可以通过创建类的对象来使用它的方法和属性。
本文将介绍Java中类的用法。
一、定义类Java中定义类的语法如下:```java public class ClassName { // 类的成员变量 // 类的构造函数 // 类的方法 } ```其中,类名要遵循标识符的命名规范。
类的成员变量是类的属性,它们用于存储对象的状态。
类的构造函数用于创建对象并初始化它的成员变量。
类的方法用于定义对象的行为。
二、成员变量Java中的成员变量也称为类的属性,用于存储对象的状态。
成员变量可以是基本类型、引用类型或数组类型。
在类的定义中,成员变量要放在构造函数和方法的前面。
成员变量可以通过类的对象来访问和修改。
```java public class Person { private String name; private int age;public Person(String name, int age){ = name; this.age = age; }public String getName() { return name; }public void setName(String name){ = name; }public int getAge() { return age; }public void setAge(int age){ this.age = age; } } ```在上面的例子中,Person类有两个成员变量name和age,它们都使用private关键字修饰,表示只能在类内部访问。
同时,这个Person类提供了一个有参构造函数和getter、setter方法,用来访问和修改成员变量。
三、构造函数Java中的构造函数用于创建对象并初始化它的成员变量。
第7章 Java语言类的特性(第4版)
7.4 静态成员
7.4.4 静态初始化器 ♥ 静态初始化器与构造方法区别:(续) • 用new创建多少个新对象,构造方法就调用多 少次,但静态初始化器则在类被加载入内存 时只执行一次。 • 静态初始化器不是方法,它没有方法名、返 回值和参数。 ♥ 如果有多个静态初始化器,则它们在类的初始 化时会依次执行。
4
7.1 类的私有成员与公共成员
7.1.3 缺省访问控制符 ♥ 若在类成员的前面不加任何访问控制符,则 该成员具有缺省的访问控制特性。 ♥ 缺省访问控制权,表示这个成员只能被同一 个包(类库)中的类所访问和调用,如果一 个子类与父类位于不同的包中,子类也不能 访问父类中的缺省访问控制成员,也就是说 其他包中的任何类都不能访问缺省访问控制 成员。 ♥ 同理,对于类来说,如果一个类没有访问控 制符,说明它具有缺省访问控制特性
5
7.2 方法的重载
方法的重载是实现“多态”的方法之一。 方法的重载是指方法带有不同的参数,但使用 相同的名字。int add(int x, int y); int add(int x, int y, int z); 方法的参数不同则表示实现不同的功能,但功 float add(float f1, float f2); 能相似。 float add(float f1, int y); 所谓参数不同是指:参数个数不同、参数类型 float add(int y, float f1); float add(int x, int y); 不同、参数的顺序不同。参数的名字不同不能 int add(int u, int v); 说明是方法的重载。 Java中不允许参数个数或参数类型完全相同, 而只有返回值类型不同的重载。 见教材例7.3
L/O/G/O
04747java语言程序设计(一)2020年10月份(试题+答案)
。
。
方法。
。
19.创建一个 3 行、20 列、显示初始字符串“Input Lines”的文本区 textA 的语句是
20.Java 中,为阻止多个线程同时访问同一个条件变量,可以为每一个对象实例配有一个
三、简答题:本大题共 5 小题,每小题 4 分。共 20 分。
容。
11
21
X = 31
41
[51
12
22
32
42
52
13
23
33
43
53
14
24
34
44
54]
54
53
Y= [
52
51
44
43
42
41
34
33
32
31
24
23
22
21
14
13
]
12
11
public class Test26{
public static void main(String[] args){
C.继承
D.new
2. 某函数中定义了 4 个变量:int iVal、long lVal、float fVal 及 doubled Val,且己经赋了初值。则下列
选项中,编译出现错误的是
A.lVal = fVal;
B.fVal = iVal;
C.fVal =lVal;
3. 以下程序代码段的输出结果是
D.dVal = fVal;
8. 以下程序代码段的输出结果是
File f = new File("/home/mydic/d07.Java");
java类与对象选择题附加答案解析
Java 类与对象选择题练习附加答案解析1. 以下关于Java类的描述,正确的是:A. 类是对象的实例。
B. 类可以包含属性和方法。
C. 类不能继承其他类。
D. 类只能包含一个方法。
答案: B。
解析:类是对象的蓝图或模板,可以包含属性(成员变量)和方法(成员函数)。
2. 在Java中,要创建一个类的对象,应使用哪个关键字?A. newB. createC. instantiateD. make答案: A。
解析:在Java中,使用`new`关键字来创建类的对象。
3. 在以下关于构造方法的描述中,正确的是:A. 构造方法必须有返回类型。
B. 构造方法的名称必须与类名相同。
C. 构造方法可以是静态的。
D. 构造方法可以重载但不能覆盖。
答案: B。
解析:构造方法的名称必须与类名相同,并且没有返回类型(包括void)。
构造方法可以重载(多个同名但参数不同的方法),但不能覆盖(重写父类方法)。
4. 如果`MyClass`类有一个名为`display`的方法,且`myObject`是`MyClass`类的一个实例,如何调用该方法?A. display();B. MyClass.display();C. myObject.display();D. MyClass::display();答案: C。
解析:通过对象实例`myObject`来调用类的非静态方法`display`。
5. 以下哪个选项是关于`this`关键字的正确描述?A. `this`关键字指向类的超类(父类)。
B. `this`关键字只能在静态方法中使用。
C. `this`关键字引用当前对象的实例。
D. `this`关键字用于创建新的对象。
答案: C。
解析:`this`关键字引用当前对象的实例,可以在类的方法和构造方法中使用来引用当前对象的成员变量或方法。
6. 在Java中,如果类B继承自类A,且类A是基类,则下列哪个选项是正确的?A. 类B是类A的超类。
java 类的初始化方法
java 类的初始化方法一、概念在Java中,类的初始化是指在创建对象之前对类进行一些预处理操作的过程。
类的初始化方法是在类加载的过程中调用的一种特殊方法,用于对类的成员变量和静态变量进行初始化操作。
类的初始化方法通常以关键字“static”修饰,可以在类的静态代码块或静态方法中实现。
通过调用类的初始化方法,可以在使用类之前对类的成员变量进行初始化,确保对象在使用之前具有合适的初始值。
二、作用1. 初始化静态成员变量:类的初始化方法常用于对静态成员变量进行初始化,保证在创建对象之前静态成员变量已经具有初始值。
静态成员变量是类的所有对象共享的,通过在类的初始化方法中对静态成员变量进行初始化,可以确保所有对象共享的变量具有相同的初始值。
2. 执行静态代码块:类的初始化方法可以包含静态代码块,用于在类加载过程中执行一些复杂的初始化操作。
静态代码块中的代码只会执行一次,在类加载时被调用,可以用于初始化一些静态资源或进行一些全局配置。
三、常见的初始化方法1. 静态代码块:静态代码块是类的初始化方法的一种实现方式,使用关键字“static”和花括号{}来定义。
静态代码块在类加载时被调用,可以用于初始化静态成员变量或执行一些复杂的初始化操作。
2. 静态方法:静态方法是类的初始化方法的另一种实现方式,使用关键字“static”来修饰方法。
静态方法可以直接通过类名调用,无需创建对象。
在静态方法中可以对静态成员变量进行初始化或执行一些其他的静态操作。
3. 构造方法:构造方法是类的实例化方法,用于创建对象时进行初始化操作。
在创建对象时,会先调用构造方法对对象进行初始化,然后再调用其他的初始化方法。
构造方法可以通过关键字“new”来调用,每次创建对象时都会执行一次。
四、总结类的初始化方法是在类加载过程中调用的一种特殊方法,用于对类的成员变量和静态变量进行初始化操作。
通过类的初始化方法,可以在使用类之前对类的成员变量进行初始化,确保对象在使用之前具有合适的初始值。
《JAVA》11类与对象
是相交圆。
Point.java
演示
Retangle3.java 演示
实例数据域与静态数据域的区别是:
实例数据域属于特定的对象,一个类 可
以使用new运算符创建很多对象,每个 对
象独立拥有自己的实例数据域。本例无 论创
建多少个矩形对象,每个对象都独立 拥有自
己的实例数据域width和height。
实例数据域与静态数据域的区别是: 静态数据域是类拥有的,所有创建 的矩形对象以共享方式访问。本中的静
局部变量是指在类的方法中定义的变量,不能使
用访问修饰符限制作用域,其作用域为定义变量
的语句开始到该语句所属的语句块的右大括号。
类的数据域在类内部的作用域与访问修饰符无关,无论在 类的任何位置定义数据域,其作用域均为整个类范围,见图
(a)。一个特殊情况是某数据域的初始化时使用了另一个数据
域,此时被使用的数据域必须定义在前面,如图 (b)所示。
public class TestPackage {
void printMessage(){ System.out.println("Welcome to java."); } }
使用包管理应用程序的类时,如果两个 类不在同一包中,有两种方式: 第一种方式是使用类的命名。 如: javax.Swing.JOptionPane 第二种方式是使用import语句导入类。
public void set属性名(数据类型 形参){…}
特别地,数据类型为boolean时,访问器方法定 义为如下形式: public 数据类型 is属性名(){…} 方法定义中数据类型通常为所封装的数据域的类 型,访问器方法的代码直接返回数据域的值,修改器 方法的代码直接把形参赋值给数据域。 Retangle2.java
static在类中的用法
static在类中的用法
在Java、C++等编程语言中,static是静态的意思,它可以修饰成员变量、成员方法以及代码块。
以下是static在类中的主要用法:
1. static成员变量:
- 静态成员变量在类加载时就已经存在,并且只被初始化一次。
- 静态成员变量独立于类的任何对象,所有对象共享同一个静态成员变量。
- 静态成员变量可以在类的外部直接访问,无需创建类对象。
2. static成员方法:
- 静态成员方法不依赖于对象,可以直接通过类名调用。
- 静态成员方法不能访问非静态成员变量和非静态方法,但可以访问静态成员变量和静态方法。
- 静态成员方法在类加载时就已经准备完成,无需创建对象。
3. static代码块:
- static代码块在类加载时自动执行,用于初始化静态成员变量或执行其他静态操作。
- static代码块只执行一次,除非手动修改静态变量或重新加载类。
总结:static在类中主要用于定义静态成员(变量、方法、代码块),这些静态成员在类加载时就已经存在,并独立于类的对象。
它们可以方便地在不创建对象的情况下进行访问和操作,提高了代码的可读性和可维护性。
private static在java中的用法
private static在java中的用法私有静态(private static)是Java编程语言中的一种访问修饰符和关键字的组合。
它用于修饰类的成员(字段和方法)并定义其范围和访问级别。
在本文中,我们将一步一步地回答关于私有静态在Java中的用法的问题。
一、私有静态的概述私有静态这个关键字和修饰符的组合表示了一个成员(字段或方法)既是私有的,又是静态的。
私有(private)意味着该成员只能在定义它的类内部访问,而静态(static)表示该成员属于类本身而不属于类的任何特定实例。
私有静态成员对类的所有实例共享,可以通过类的名称直接访问。
二、私有静态字段(private static fields)私有静态字段是属于类而不是对象的变量。
它们在多个对象之间共享相同的值。
使用私有静态字段可以在不创建类的实例的情况下存储和访问信息。
下面是一个使用私有静态字段的示例代码:javapublic class MyClass {private static int count;public MyClass() {count++;}public static int getCount() {return count;}}在上述代码中,私有静态字段`count`用于存储`MyClass`类的实例数量。
每当创建一个`MyClass`的实例时,构造函数会自增`count`的值。
通过`getCount()`方法,我们可以获取已创建的`MyClass`实例的数量。
javapublic class Main {public static void main(String[] args) {MyClass obj1 = new MyClass();MyClass obj2 = new MyClass();MyClass obj3 = new MyClass();System.out.println(MyClass.getCount()); 输出结果为3 }}在上述示例中,我们创建了三个`MyClass`实例,并通过`getCount()`方法获取了实例的数量。
Java中public,private,final,static等概念的解读
Java中public,private,final,static等概念的解读作为刚⼊门Java的⼩⽩,对于public,private,final,static等概念总是搞不清楚,到底都代表着什么,这⾥做⼀个简单的梳理,和⼤家分享,若有错误请指正,谢谢~访问权限修饰符public和private是访问权限修饰符,⽤于控制外界对类内部成员的访问。
public:表明对象成员是完全共有的,外界可以随意访问。
private:表明对象成员是完全私有的,不容许外界的任何访问。
具体关于public,private的内容请移步:, 进⼀步有关protected的内容请移步:类成员变化修饰符static和final是控制类成员变化的修饰符。
static:静态成员修饰符,其修饰的静态变量脱离具体对象独⽴存在,在内存中之后⼀份拷贝,所有的对象都公⽤这⼀个存储空间,所以对static修饰的静态变量进⾏的修改对该类的所有对象都起作⽤。
static修饰的静态函数代表所有对象的统⼀操作,只能调⽤静态变量。
static是针对⾯向对象中的“多态”⽽提出来的,static修饰的静态成员不存在多态性。
final:final⽤来修饰⽅法和属性表⽰特殊的意义。
修饰⽅法时表⽰⽅法不能被重写;修饰属性时表⽰属性不能被改变,这⾥属性⼜分为对象和基本类型,修饰基本类型表⽰基本类型赋值以后不能再被赋值,修饰对象表⽰这个属性不能再指向其他对象(引⽤不变),但是他指向的这个对象本⾝还是可以被改变的。
既然final⽅法不可重写,那下⾯这段程序是否有错呢?class Base {private final void method() {System.out.println("In Base...");}}class Sub extends Base {public void method() {System.out.println("In Sub...");}}答案:正确的。
浅析Java中的静态字段与实例字段、静态方法与非静态方法、以及Java继承中父类子类构造方。。。
浅析Java中的静态字段与实例字段、静态⽅法与⾮静态⽅法、以及Java继承中⽗类⼦类构造⽅。
⼀、静态字段与实例字段 在⼀个class中定义的字段,我们称之为实例字段。
实例字段的特点是,每个实例都有独⽴的字段,各个实例的同名字段互不影响。
还有⼀种字段,是⽤static修饰的字段,称为静态字段:static field。
实例字段在每个实例中都有⾃⼰的⼀个独⽴“空间”,但是静态字段只有⼀个共享“空间”,所有实例都会共享该字段。
public class Main {public static void main(String[] args) {Person ming = new Person("Xiao Ming", 12);Person hong = new Person("Xiao Hong", 15);ming.number = 88;System.out.println(hong.number);hong.number = 99;System.out.println(ming.number);}}class Person {public String name;public int age;public static int number;public Person(String name, int age) { = name;this.age = age;}} 上述代码运⾏结果为打印: 88 99。
为什么?修改 ming.number 为 88 ,打印 hong.number 也是 88;修改 hong.number 为 99,打印ming.number 也为 99。
对于静态字段,⽆论修改哪个实例的静态字段,效果都是⼀样的:所有实例的静态字段都被修改了,原因是静态字段并不属于实例 虽然实例可以访问静态字段,但是它们指向的其实都是Person class的静态字段。
枚举(enum)与类的静态成员(static)
枚举(enum)与类的静态成员(static)枚举(ENUM)与类的静态成员(static)枚举表⽰可以计数的⼀种类型Gender.javapublic enum Gender {male,Female,}Person.javapublic class Person {String name;int age;Gender gender;static String nation;/*** display()显⽰⽅法* */void display() {System.out.println(String.format("姓名=%s,年龄=%d,性别=%s,国籍=%s", name, age,gender, Person.nation));}}test.javapublic class test {public static void main(String[] args) {// TODO Auto-generated method stubPerson p=new Person();="Jay Chou";p.age=30;p.gender=Gender.Female;Person.nation="中国";p.display();}}解析上述中的代码,以及涉及到的⽅法static--表⽰静态类型,它所表⽰的类或者成员均属于类⽽不是属于某个对象例如在Person类中有⼀nation属性,定义为static类型,这时在主函数测试类中调⽤该属性时Person.nation="中国";使⽤该类去调⽤,该nation属性不⽤static标识时,如果存储了多个⼈的对象,都同属于⼀个国家,这是就会出现nation这个字段多次出现,占⽤内存,使⽤stati表⽰nation⼤家共享⼀份,不会浪费内存在display⽅法中还出现了String.Format⽅法:表⽰格式化字符串,该⽤法为System.out.println(String.format("姓名=%s,年龄=%d,性别=%s,国籍=%s", name, age,gender, Person.nation));1. %s-->输出字符串类型2. %d-->输出整型类型(⼗进制)3. %x-->输出整型类型(⼗六进制)4. %b-->输出布尔类型5. %c-->输出字符类型当属性设置为private时,就需要使⽤set来进⾏设置属性了(在nation这个属性前添加private)private static nation;public static void setNation(String nation){Person.nation=nation;}主函数调⽤使⽤Person.setNation("中国");访问静态成员时必须使⽤静态⽅法实例成员属于类中的每个实例运⾏结果。
import static的顺序
在Java编程中,我们经常会遇到需要引入其他类中的静态成员(包括静态方法、静态变量)或者整个类的情况。
为了方便引用这些静态成员或者类,我们可以使用import static语句来实现。
但是在使用import static语句的时候,我们需要注意导入的顺序,以确保代码的清晰易读。
二、导入静态成员的顺序在引入其他类中的静态成员时,我们应该按照以下顺序进行导入,以保证代码的规范和清晰。
1. 首先导入java标准库中的静态成员。
这些成员包括System类中的out、err等静态成员,以及ng.Math类中的静态成员。
由于这些类是所有Java程序都会用到的标准类库,因此我们应该优先导入它们,以便在代码中直接使用这些静态成员,而无需写出类名。
```javaimport static ng.System.out;import static ng.Math.PI;```2. 其次导入其他类中的静态成员。
在引入其他类中的静态成员时,我们应该按照字母顺序进行导入,以提高代码的可读性。
另外,对于同一个类中的静态成员,我们可以将它们写在同一行上,以减少代码的```javaimport static.example.ClassName.staticMember1;import static.example.ClassName.staticMember2;```3. 最后导入静态工具类。
一些第三方库或者自己编写的工具类中可能会包含大量的静态方法,为了方便使用这些方法,我们可以使用import static语句进行导入。
在导入静态工具类时,我们同样应该按照字母顺序进行导入。
```javaimport static.example.utils.UtilClass.staticMethod1;import static.example.utils.UtilClass.staticMethod2;```三、导入类的顺序在引入整个类的时候,我们应该按照以下顺序进行导入,以保证代码的整洁和规范。
java静态的用法
java静态的用法【Java静态的用法】在Java中,"静态"关键字用于声明静态成员变量和静态方法。
静态成员属于类本身,而不属于类的实例。
下面是静态成员和静态方法的几个常见用法:1. 静态成员变量(静态字段):静态成员变量是通过使用"static"关键字声明的,它在类的所有实例之间共享相同的值。
它可以在类的任何地方访问,包括静态方法内部。
静态成员变量通常用于存储与类相关的常量或共享的数据。
以下是一个例子:```javapublic class MyClass {public static int staticVariable = 10;// 其他代码...}```2. 静态方法:静态方法是通过使用"static"关键字声明的方法。
它可以在类的任何地方调用,而不需要创建类的实例。
静态方法通常用于执行与类相关的操作,而与类的实例无关。
以下是一个例子:```javapublic class MyClass {public static void staticMethod() {// 执行静态方法的代码...}// 其他代码...}```3. 使用静态成员和静态方法:静态成员可以直接使用类名来访问,而无需创建类的实例。
静态方法也可以直接调用,无需实例化对象。
以下是使用静态成员和静态方法的示例:```javapublic class MyClass {public static int staticVariable = 10;public static void staticMethod() {// 执行静态方法的代码...}// 其他代码...public static void main(String[] args) {// 直接访问静态变量int value = MyClass.staticVariable;// 直接调用静态方法MyClass.staticMethod();}}```总结:静态成员和静态方法在Java中有广泛的应用。
java静态变量 定义规则
在Java类中,由static修饰的属性(成员变量)叫做静态变量,也叫类变量。
而被static修饰的常量就叫做静态常量,静态变量和静态常量统称为静态成员。
注意,局部变量不能被声明为静态变量。
对于静态变量和静态常量来说,无论一个类实例化出来多少个对象,它的静态成员都只有一份拷贝,可以被所有的对象共享。
对实例变量来说,每个实例对象都有自己独立的变量,各个实例对象中的同名变量互不影响。
但是对于静态变量来说,无论修改哪个实例对象的静态变量,效果其实都是一样的。
也就是说,所有实例对象的静态变量都会被修改,原因在于静态变量并不属于某个单独的实例对象所有。
所以当我们需要在多个对象之间进行信息共享的时候,就可以考虑使用静态变量或静态常量,增加实例之间的交互性。
而如果类的所有实例对象都包含一个相同的常量属性,我们就可以把这个属性定义为静态常量,以此节省内存空间。
可以说,实例成员在每个实例对象中都有自己的一个独立的私有“空间”,但是静态成员只有一个共享的公共“空间”,所有实例对象都会共享该静态成员。
java中static关键字的用法
java中static关键字的用法在Java中,`static`关键字是一种重要的修饰符,它用于定义静态成员变量、静态方法以及静态内部类等。
下面详细介绍`static`关键字的用法。
1. 静态成员变量静态成员变量是属于类本身,而不属于类的任何一个实例。
因此,静态成员变量也称为类变量。
它们在类中被声明,并且可以被类的所有实例共享。
静态成员变量在类中的声明方式是在变量前面加上`static`关键字。
例如:```javapublic class MyClass {static int staticVar;}```在这个例子中,`staticVar`是一个静态成员变量,它属于`MyClass`类本身,而不是类的任何实例。
2. 静态方法静态方法也是属于类本身,而不属于类的任何一个实例。
因此,静态方法可以在不创建类的实例的情况下调用。
静态方法在类中的声明方式是在方法前面加上`static`关键字。
例如:```javapublic class MyClass {static void staticMethod() {// method body}}```在这个例子中,`staticMethod`是一个静态方法,它属于`MyClass`类本身,而不是类的任何实例。
3. 静态内部类静态内部类是定义在另一个类的内部,并且不能访问外部类的非静态成员变量的内部类。
静态内部类在类中的声明方式是在类前面加上`static`关键字。
例如:```javapublic class OuterClass {static class InnerClass {// class body}}```在这个例子中,`InnerClass`是一个静态内部类,它不能访问外部类`OuterClass`的非静态成员变量。
java期末考试试卷及答案1
学年学期期末考试卷卷课程《Java程序设计》考试时间: 120 分钟班级姓名学号一、填空题(将正确答案填在横线上,每空2分,共20分)1. Class 类是由Java编译器自动生成的,它伴随每个类。
2. 任何一个Java程序都默认引入一个包,这个包的名字是ng 。
3. 在Java语言中,有一个类是所有类或接口的父类,这个类的名称是Object 。
4. 在Java中所实现的二维数组,实际上是由一维数组构成的。
5. 在Java中,字符串是作为对象出现的。
6. 接口可以看作是仅容纳和常量,而又不能直接生成对象的特殊抽象类。
7. 在编写和运行数据库程序之前需要建立起Java数据库程序的开发环境,这至少需要安装JDK.数据库和驱动程序。
8.在Java中,组件不能独立地显示出来,必须将组件放在一定的中才能显示。
9.Applet是能够嵌入到格式中的文件,并能够在浏览器中运行的Java类。
10.类的静态成员属于这个类的所有对象。
二、单项选择题(请将正确答案的代号填在答题卡内,每题2分,共40分)1.作为Java应用程序入口的main方法,其声明格式可以是()。
A. public static void main(String[] args)B. public static int main(String[] args)C. public void main(String[] args)D. public int main(String[] args)2.在一个合法的Java源程序文件中定义了3个类,其中属性为public的类可能有()个。
A.0B.1C.2D.33.下面(B )单词是Java语言的关键字。
A.sizeofB.abstractC.nullD.String4. 设有如下的程序代码,在执行完后x和y的值是多少?()int x= 8, y=2, zx=++x*yz=x/y++x=16, y=2 B. x=16, y=4 C. x=18, y=2 D. x=18, y=35. 正确定义一个初始值为25.8的float类型的变量的语句是: ()float #value=25.8ffloat value#=25.8float _value=25.8ffloat value=25.86. 以下语句不能通过编译的是()。
java复习题-选择题判断题
java复习题-选择题判断题复习题-选择题、判断题一、选择题1、Java用来定义一个新类时,所使用的关键字为( B )A、publicB、classC、structD、interface2、在Java中,关键字( D )使类必须被继承后才能创建对象。
A、finalB、thisC、protectedD、abstract3、设有String a="0"; char b='0'; int c=48;下面选项中能输出“Equal”的是( C )A、if(a==b){System.out.print("Equal");}B、if(a==c){System.out.print("Equal");}C、if(c==b) {System.out.print("Equal");}D、if(c!=b){System.out.print("Equal");}4、类的构造方法被自动调用执行的情况是在定义该类的( C )的时候。
A、成员函数B、数据成员C、对象D、构造函数5、下列可作为java语言标识符的是( A )B、1$1C、!_1D、this6、要设置一个类的属性为私有的,应使用关键字( C )A、protectedB、publicC、privateD、super7、一个类可同时定义许多同名的方法,它们的参数个数、类型或顺序各不相同,传回值的类型也可以不相同,这称为( C )A、隐藏B、覆盖C、重载D、重写8、设数组len由以下语句定义float len=new float int[22];则数组的最后一个元素的正确引用方法为( C )A、len [0]B、len []C、len [21]D、len[22]9、Java语言中下面哪个不是正确的关键字( D )A、synchronizedB、implementsC、superD、main10、下列代码第( C )行会出错。
Java中this,static,final,const用法详解
Java中this,static,final,const⽤法详解⼀、this⽤类名定义⼀个变量的时候,定义的应该只是⼀个引⽤,外⾯可以通过这个引⽤来访问这个类⾥⾯的属性和⽅法,那们类⾥⾯是够也应该有⼀个引⽤来访问⾃⼰的属性和⽅法纳?JAVA提供了⼀个很好的东西,就是 this 对象,它可以在类⾥⾯来引⽤这个类的属性和⽅法。
Java关键字this只能⽤于⽅法⽅法体内。
当⼀个对象创建后,Java虚拟机(JVM)就会给这个对象分配⼀个引⽤⾃⾝的指针,这个指针的名字就是 this。
因此,this只能在类中的⾮静态⽅法中使⽤,静态⽅法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使⽤总结”⼀⽂中给出了明确解释。
并且this只和特定的对象关联,⽽不和类关联,同⼀个类的不同对象有不同的this。
总结⼀下,this主要要三种⽤法:1、表⽰对当前对象的引⽤!2、表⽰⽤类的成员变量,⽽⾮函数参数,注意在函数参数和成员变量同名是进⾏区分!其实这是第⼀种⽤法的特例,⽐较常⽤,所以那出来强⼀下。
3、⽤于在构造⽅法中引⽤满⾜指定参数类型的构造器(其实也就是构造⽅法)。
但是这⾥必须⾮常注意:只能引⽤⼀个构造⽅法且必须位于开始!注意:this不能⽤在static⽅法中!所以甚⾄有⼈给static⽅法的定义就是:没有this的⽅法!虽然夸张,但是却充分说明this不能在static⽅法中使⽤!⼆、staticstatic表⽰“全局”或者“静态”的意思,⽤来修饰成员变量和成员⽅法,也可以形成静态static代码块,但是Java语⾔中没有全局变量的概念。
被static修饰的成员变量和成员⽅法独⽴于该类的任何对象。
也就是说,它不依赖类特定的实例,被类的所有实例共享。
只要这个类被加载,Java虚拟机就能根据类名在运⾏时数据区的⽅法区内定找到他们。
因此,static对象可以在它的任何对象创建之前访问,⽆需引⽤任何对象。
java中的内部类内部接口用法说明
java中的内部类内部接⼝⽤法说明简介⼀般来说,我们创建类和接⼝的时候都是⼀个类⼀个⽂件,⼀个接⼝⼀个⽂件,但有时候为了⽅便或者某些特殊的原因,java 并不介意在⼀个⽂件中写多个类和多个接⼝,这就有了我们今天要讲的内部类和内部接⼝。
内部类先讲内部类,内部类就是在类中定义的类。
类中的类可以看做是类的⼀个属性,⼀个属性可以是static也可以是⾮static的。
⽽内部类也可以定义在类的⽅法中,再加上匿名类,总共有5种内部类。
静态内部类我们在class内部定义⼀个static的class,如下所⽰:@Slf4jpublic class StaticInnerClass {static class Inner {void print() {("Inner class is: " + this);}}public static void main(String[] args) {StaticInnerClass.Inner inner = new StaticInnerClass.Inner();inner.print();}}因为static变量可以直接根据类名来存取,所以我们使⽤new StaticInnerClass.Inner()来实例化内部类。
⾮静态内部类class中定义的类也可以是⾮静态的,如下所⽰:@Slf4jpublic class InnerClass {class Inner {void print() {("Inner class is: " + this);}}public static void main(String[] args) {InnerClass.Inner inner = new InnerClass().new Inner();inner.print();}}要访问到类的变量,需要实例化外部内,然后再实例化内部类:new InnerClass().new Inner()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在main方法中创建学生,并且每创建一个学生,给学生人数+1
Student stu1 = new Student(); stu1.no = "001"; = "刘备"; Student.count++; Student stu2 = new Student(); stu2.no = "001"; = "刘备"; Student.count++; Student stu3 = new Student(); stu3.no = "001"; = "刘备"; Student.count++; System.out.println("学生人数:" + Student.count);
}
在main方法中创建学生,并且每创建一个学生,给学生人数+1
Student stu1 = new Student(); stu1.no = "001"; = "刘备"; stu1.count++; Student stu2 = new Student(); stu2.no = "001"; = "刘备"; stu2.count++; Student stu3 = new Student(); stu3.no = "001"; = "刘备"; stu3.count++; System.out.println("学生人数:" + stu3.count); //此时有三个学生,但是打印的学生人数仍然 是1.
}
在main方法中调用printHello方法不需要实例化对象,而可以直接用类名来调用。
Student.printHello(); //此时可以打印"全体学生欢迎您!"
静态成员是类级别的,是所有对象共享的数据,如果在学生类中,有一个字段来记录学生人数,此时不 使用静态成员将无法记录学生人数,例如:
public class Student { String no; //学号 String name; //姓名 int count; //学生人数
//此时可以打印学生人数为3
类的静态成员
声明静态成员使用static修饰符。 时才会释放内存空间。 一个类中的静态成员可以是静态字段,也可以有静态方法,静态成员不需要创建对象后使用,可以直接 使用类名来引用,例如: 有一个学生类,如下:
public class Student { //静态方法 public static void printHello() { System.out.println("全体学生欢迎您!"); }
通过以上代码我们可以看出,学生人数并没有增加,实际上三个对象都单独拥有学生人数的字段,并且 毫无关联。
此时我们可以使用静态成员解决此问题,代码如下,例如:
public class Student { String no; //学号 String name; //姓名 static int count; //学生人数