zoukankan      html  css  js  c++  java
  • 类与对象——动手动脑

    1.以下代码为啥无法编译通过?

    在java语言中,每个类至少有一个构造方法。如果程序中没有显式定义任何构造方法,

    那么java语言将自动提供一个隐含的默认构造方法。只要程序中已经显式定义了构造方法。

    那么java语言将不再提供隐含的默认构造方法。

    2.自行总结Java字段初始化的规律

    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(){
           
        }
    }

    结论:初始化第一次是用了类的初始化块,第二次用了public的int初始化,所以第二次覆盖了第一次,输出了100;

             在main函数中给类InitializeBlockClass赋初值300,所以覆盖100,输出300;

             所以类的初始化有类的初始化块,还可以直接在类中赋值,还可以用一个函数为类的属性赋值,还可以构造函数。

    3.如何在静态方法中访问类的实例成员。

     

    public class Employee {
        static int n = 200; //静态变量
    
        public static void main(String[] args) {
            New e = new New();
            n = e.Shi();   //将实例变量赋值给静态变量
            New.Jing(n); //
    
        }
    
    }
    class New{
        int m = 100; //实例变量
        int Shi(){
            int x;
            x = m;
            return x;//实例函数,返回一个实例值
        }
        static void Jing(int x){
            System.out.println(x);  //输出静态变量
        }
        
    }
    1

     

    public static void main(String[] args) {
            New e = new New();
            /*n = e.Shi();   //将实例变量赋值给静态变量*/
            e.Shi();
            New.Jing(); 
            
    
        }
    
    }
    class New{
        int m = 100; //实例变量
        static int n = 200;
        void  Shi(){
            n = m;  //实例函数,返回一个实例值
        }
        static void Jing(){
            System.out.println(n);  //输出静态变量
        }
        
    }
    2

  • 相关阅读:
    Centos 6.4 8250/16550 只生成了4个串口
    Warning: Data truncated for column 'AirPress' at row 1
    I.MX6 32G SD卡测试
    oracle创建数据库表空间
    oracle创建表空间
    SpringMvc文件下载
    怎么取消ie浏览器body与html的间隙
    Ztree手风琴效果(第三版)
    判断JS对象是否拥有某属性
    js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本
  • 原文地址:https://www.cnblogs.com/lixv2018/p/9825554.html
Copyright © 2011-2022 走看看