JAVA基础(四)

内部类对象声明

Outer outer = new Outer();

Outer.Inner inner = outer.new Inner();

静态内部类可以直接创建对象new Outer.Inner();

 

switch case 变量必须是final类型原因是因为switch在编译的时候会确保case里面的值必须不能相同。

1.只要是final static int 定义的数据都能用在switch的case子句中(错)
2.只要是final static int修饰的数据在多次重启虚拟机后会值恒定不变(错)
以上两个命题都成立,
1.用final static int 定义的数据但是没有赋值的话就不是常量;
2.final static int修饰的数据只有在编译前确定了值的才会在重启虚拟机后值不变

第一个问题,final变量定义的时候,可以先声明,而不给初值。所以如果你使用public static final int   m; 然后加入到case里面是不会通过编译的。 另外 如果switch(key)里面的key的值是有范围的,比如是byte类型的值。 就算你给了一个初值的final类型的变量超过了byte的值的范围比如public static final int m = 999. 也是不能通过编译的。故 第一个说法是有出入的。
第二个问题我觉得太高深了,不大懂。或许更jvm启动时候内存里的内容有关系。不过我觉得这个出入对编程时候的使用没有影响

 

在static方法中为什么不能使用this引用

this 对象,它可以在类里面来引用这个类本身的属性和方法,说白了就是this是对象new出来后才会存在的,而static方法是不需要new出来直接可以调用的。所以在调用static方法并不能保证this已经存在,自然会报错!所以在static方法中只能引用static的变量和方法。Static方法是类方法,先于任何的实例(对象)存在。即Static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成。而this指代的是当前的对象.因为this是指向当前对象自己的指针,而static是静态的,也就是类方法,这个时候实例还不存在,所以没办法用this指自己

为什么类方法中不能操作实例成员变量

类方法就是static修饰的方法
static修饰得方法在加载class得时候就加载完成
这个时候构造方法还没执行
此时非static得属性比如成员变量还没初始化
所以不能调用,因为都还不存在

JDK为什么要配置classPath,path

PATH为了便捷。不把JDK的bin目录加到PATH的话,需要
path\to\jdk\bin\javac Xxx.java 这样编译程序,加到PATH后,可以直接 javac Xxxx.java, 输入省事多了。
至于CLASSPATH,现在的jdk不需要这个环境变量了。最初的jdk自己找不到jdk\lib目录下的tools.jar,所以需要配置这个环境变量。作用:Java虚拟机(JVM)借助类装载器装入应用程序使用的类,具体装入哪些类根据当时的需要决定。CLASSPATH环境变量告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。另外,你也可以使用JVM命令行参数-classpath分别为应用程序指定类路径,在-classpath中指定的类路径覆盖CLASSPATH环境变量中指定的值。

bean类的定义

一个可复用的类,javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值