博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.17动手动脑
阅读量:5298 次
发布时间:2019-06-14

本文共 1393 字,大约阅读时间需要 4 分钟。

1.如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算?

程序源代码

package zihao;class InitalizeBlockClass {    {        field=200;    }    public int field =100;    public InitalizeBlockClass(int value)    {        this.field=value;    }    public InitalizeBlockClass() {            }    public static void main(String[] args)    {        InitalizeBlockClass obj=new InitalizeBlockClass();        System.out.println(obj.field);        obj=new InitalizeBlockClass (300);        System.out.println(obj.field);    }}

程序执行结果

分析:

在Java编程中,字段的初始化顺序是

  1. 类加载时直接初始化静态字段;

  2. 类加载时调用静态方法初始化静态字段;

  3. 实例化对象时,在调用构造函数之前代码块中初始化字段;

  4. 实例化对象时,在调用构造函数之时初始化字段;

执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个排在前面

类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”

2.

静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

java类的成员变量有俩种:  一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为实例变量  类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。  而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。

源程序代码

package boke;public class Jingshili {    static int i;、     int b=3;    public static void main(String args[])    {        System.out.println(i);        int i=1;        System.out.println(i);        //创建一个实例        Jingshili a=new Jingshili();        System.out.println(a.b);    }}

程序执行结果截图

 

System.out.println(i);创建一个实例之后,可以通过一个实例来访问实例变量

转载于:https://www.cnblogs.com/xuzhaoyang/p/7699409.html

你可能感兴趣的文章
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
VSCODE更改文件时,提示:EACCES: permission denied的解决办法(mac电脑系统)
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
Pycharm安装Markdown插件
查看>>
【转】redo与undo
查看>>
C#更新程序设计
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>