JavaSE-构造方法,static关键字,创建对象

JavaSE-构造方法,static关键字,创建对象

构造方法

作用:创建对象,给对象中的成员进行初始化

特点:

(1)方法名与类名相同

(2)没有返回值类型,没有void

(3)没有具体的返回值

面向对象

举例

class Demo {

static int i=1, j=2;

static {

display(i); **//**在类加载进内存时就会执行

}

public static void main(String[] args) {

display(j);

}

public static void display(int n) {

System.out.println(n);

}

}

通过调用display()完成

创建一个对象的步骤

Student s = new Student();

​ (1):加载Student.class文件进内存
​ (2):在栈内存为s开辟空间
​ (3):在堆内存为学生对象开辟空间
​ (4):对学生对象的成员变量进行默认初始化
​ (5):对学生对象的成员变量进行显示初始化
​ (6):通过构造方法对学生对象的成员变量赋值
​ (7):学生对象初始化完毕,把对象地址赋值给s变量

static关键字

特点:

(1)随着类的加载而加载

(2)优先于对象而存在

(3)被类的所有对象共享

关于static,其实就是说明了类的权限,如果某个成员变量是被所有对象共享的,那么他就应该被定义为静态的

静态修饰的内容一般我们称其为:与类相关的,类成员。

注意事项:

在静态方法中没有this关键字,因为静态是随着类的加载而加载,this是随着对象的创建而存在,静态比对象先存在。

静态方法只能访问静态的成员变量和成员方法。

总结:静态只能访问静态,非静态都可以访问。

静态变量和成员变量的区别

A:所属不同
静态变量属于类,所以也称为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
B:内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
C:内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用

随机数举例

import java.util.Scanner;

public class GuessNumberGame {
public static void main(String[] args) {
int num = (int) (Math.random() * 100 + 1);
Scanner scanner = new Scanner(System.in);
System.out.println(“游戏开始,你一共有5次机会\n请在1—100之间(包括1和100)猜一个数:”);
int frequency=5;
int x=-1;
for (int i = 1; i <=frequency; i++) {
int n = scanner.nextInt();
if (n > num) {
System.out.println(“猜大了”);
} else if (n < num) {
System.out.println(“猜小了”);
} else {
System.out.println(“恭喜你猜对了!”);
x=1;
break;
}
if (i < frequency) {
System.out.println(“你还有” + (frequency - i) + “次机会!\n请再猜一个数:”);
}
}
if(x!=1){
System.out.println(“Game Over”);
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值