zoukankan      html  css  js  c++  java
  • java动手动脑

    Java动手动脑

    1.

    • Ø 早期我们经常这样定义变量

               int value=100;

    • Ø 前面的示例中这样定义变量

               MyClass obj = new MyClass();

    • Ø 这两种方式定义的变量是一样的吗?

    这两个方式定义是一样的,都是类的实例化,只不过第一个是简便的写法。第二个是正常定义对象的方式。

    2.

    • Ø  对象变量也可以使用“==”判断两变量值是否相等吗?
    1.判断两个对象是否是同一个引用对象则用==,"=="比的是地址.因为如果地址相同,则就是同一个对象

    2.obj1.equals(Object obj2),用来判断两个对象是否相等(前面给出的是相等的情况。如果你要不相等的话:!obj1.equals(Object obj2)就OK了)

    3.

     

     请总结一下,这个方法有哪些“与众不同之处”,你能列出几条?

    1. 方法名是类名

    2. 没有方法的类型

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

     

    Foo类重构了构造函数,但是没有写无参的构造函数。所以在主函数中声明对象时,调用无参构造函数失败,报错。

    5. public class InitializeBlockDemo {

     

        /**

         * @param args

         */

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

          

        }

    }

    输出结果为:100 300

    java进行初始化的地方有两个:初始化块和构造函数,其中初始化块又分为静态初始化块和实例初始化块。静态初始化块是类中由static修饰的初始化块,实例初始化块为类中没有任何关键字修饰的初始化语句。

    如果在主函数中创建对象时没有形参时,如果在类中定义了公共的变量并给与了赋值,那么就会把值赋给主函数中的变量,再调用类中的默认构造函数,如果在主函数中创建对象时有形参,则调用类中对应的构造函数。

    6.

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

    在静态方法中访问类的实例变量需首先进行类的实例化

    package Text1;

     

    public class JingTaiHanShu {

         int x = 3;

         static int  y = 4;

         public static void Method()//静态方法

          {  

           System.out.println("实例变量x = " + new JingTaiHanShu().x);/    System.out.println("静态变量y = " + y);     }

     

         public static void main(String[] args)

            {

            JingTaiHanShu.Method();

            JingTaiHanShu ex = new JingTaiHanShu();

                System.out.println("x = " + ex.x);

            }

    }

    输出结果:静态变量y = 4

    x = 3

     

  • 相关阅读:
    白帽子 攻防
    自定义WCF的配置文件
    .net快速创建PDF文档 by c#
    如何在面试中发现优秀程序员
    kafka-java客户端连接
    xshell 登陆堡垒机实现自动跳转
    良好的编程习惯
    Mycat-介绍
    scala-传名函数和传值函数
    springboot-31-springboot静态注入
  • 原文地址:https://www.cnblogs.com/aishanyishi/p/7686614.html
Copyright © 2011-2022 走看看