本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
5分38秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 步骤 1 : 对象属性初始化 步骤 2 : 类属性初始化 步骤 3 : 练习-属性初始化 步骤 4 : 答案-属性初始化
对象属性初始化有3种
1. 声明该属性的时候初始化 2. 构造方法中初始化 3. 初始化块 package charactor;
public class Hero {
public String name = "some hero"; //声明该属性的时候初始化
protected float hp;
float maxHP;
{
maxHP = 200; //初始化块
}
public Hero(){
hp = 100; //构造方法中初始化
}
}
package charactor; public class Hero { public String name = "some hero"; //声明该属性的时候初始化 protected float hp; float maxHP; { maxHP = 200; //初始化块 } public Hero(){ hp = 100; //构造方法中初始化 } }
类属性初始化有2种
1. 声明该属性的时候初始化 2. 静态初始化块 package charactor;
public class Hero {
public String name;
protected float hp;
float maxHP;
//物品栏的容量
public static int itemCapacity=8; //声明的时候 初始化
static{
itemCapacity = 6;//静态初始化块 初始化
}
public Hero(){
}
public static void main(String[] args) {
System.out.println(Hero.itemCapacity);
}
}
对象属性的初始化有三种方式
故意把初始化块,放在构造方法下面,问题: 这三种方式,谁先执行?谁后执行? package charactor;
public class Hero {
public String name = "some hero";
public Hero(){
name = "one hero";
}
{
name = "the hero";
}
}
package charactor; public class Hero { public String name = "some hero"; public Hero(){ name = "one hero"; } { name = "the hero"; } }
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
3分34秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器
设计一个类方法
public static String getName(String pos){ } 在属性初始化的时候,调用这个方法的返回值。 观察这个方法的输出顺序 package charactor;
public class Hero {
public String name =Hero.getName("属性声明") ;
public Hero(){
name = Hero.getName("构造方法");
}
{
name = Hero.getName("初始化块");
}
public static String getName(String pos){
String result= "name "+pos;
System.out.println(result);
return result;
}
public static void main(String[] args) {
new Hero();
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2024-05-26
类属性可以通过构造器初始化吗
2024-02-08
答案
2 个答案
shishi12 跳转到问题位置 答案时间:2024-03-30 先进行声明时的初始化,再进行初始化块,最后进行构造方法的初始化
晚安嘛 跳转到问题位置 答案时间:2024-03-04 总结就是,如果有在构造方法里初始化对象属性的,无论外面的声明初始化和块初始化谁在前谁在后,结果都是构造方法里的初始化;如果没有构造方法,则声明和块初始化谁的位置在后面,最后对象属性的结果就是谁初始化的结果。
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2023-09-09
filed intialize order
2021-07-09
2021-7-8-PM-11-55
2021-06-30
恩,这样对吗
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 51 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|