• java练习


    请输入并运行以下代码,得到什么结果?

    public class Test {

          public static void main(String[]  args){

                        Foo obj1=new Foo();  

                        Foo obj2=new Foo();  

                        System.out.println(obj1==obj2);//?

     }  

    }

    class Foo{

               int value=100;

    }

    得到false;

     以下代码为何无法通过编译哪儿出错了

    public class Test {

            public static void main(String[]  args){

                      Foo obj1=new Foo();

     }

    }

    class Foo{

             int value;

             public Foo(int initValue ){

                     value=initValue;  

    }

    }

      Foo obj1=new Foo();应该为  Foo obj1=new Foo(数);

    使用上页幻灯片中定义的类,以下代码输出结果是什么?
    请依据代码的输出结果,自行总结Java字段初始化的规律。(发表到博客)

    public class Test {

          public static void main(String[]  args){

                    InitializeBlockClass obj=new InitializeBlockClass();   

                    System.out.println(obj.field);//?   

                    obj=new InitializeBlockClass(300);

                    System.out.println(obj.field);//?

     }

    }

    class InitializeBlockClass{

     {  

           field=200;

     }  

          public int field=100;

          public InitializeBlockClass(int value)

    {  

           this.field=value;

     }  

           public InitializeBlockClass()  {  

       }

    }

    Java字段初始化的规律:

    所有类的变量都默认初始化为null,比如String a; Integer b; 数字类的原始数据类型默认初始化为0,比如int a; short b; char c; boolean默认初始化为false
    ;
    当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行:

    public class InitializeBlockDemo {

          public static void main(String[] args) {      

              InitializeBlockClass obj=new InitializeBlockClass();  

               System.out.println(obj.field);      

               obj=new InitializeBlockClass(300);   

              System.out.println(obj.field);  

          }

    }

    class InitializeBlockClass{  

    //下面这句在初始化块之前与之后,会影响到field字段的初始值  //

            public int field=100;  

           {    

                field=200;

          }  

           public int field=100;

           public InitializeBlockClass(int value)

          {  

              this.field=value;

          }

         public InitializeBlockClass(){     

         }

    }

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

    public class Ex

    {   

            int i =123; static int Temp;

            public static void A()

             System.out.println(Temp);

             public int B()

    {

                 int x = 100;

                 return x;

    }

    public static void main(String args[]) {

               Ex e = new Ex();

               Temp = e.B();

                e.A();

    }

    }

    使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”:

     

    public class Student{

     

                public static void main(String[] args){

     

                       Information a = new Information();

     

                       a.OutputInformation();

     

                       Information b = new Information();

     

                       b.OutputInformation();

     

    }

    }

    //定义类

    class Information{

     

                  static int num=0;

     

                  Information()

     

    {   

                  num++;

     

    }

     

     public void OutputInformation()

     

     {

     

                 System.out.println("你已经创建了"+num+"个对象!");

     

    }

     

    }

     



     
  • 相关阅读:
    列表 list
    flask实现json数据处理、学生信息表格展示和jinjia2的用法
    flask实现用户登录和上传文件
    移动端APP测试
    charles-截取移动端请求-设置代理
    charles-过滤网络请求方法
    badboy的录制和jmeter的使用
    jmeter之关联
    jmeter集合点
    jmeter之检查点
  • 原文地址:https://www.cnblogs.com/liguoshuai/p/4888271.html
Copyright © 2020-2023  润新知