CoreJava Reading Note(4:Object and class)

1.类之间的关系

  http://blog.youkuaiyun.com/lpjishu/article/details/51491779

  

2.构造器

  必须注意在所有的方法中不要命名与实例域同名的变量!

 

3.方法的隐式参数与显式参数

  第一个参数称为隐式参数,是出现在方法名前的类的对象。第二个参数位于方法名后面括号中的数值,这是一个显式参数。(有些人把隐式参数成为方法调用的目标或接受者)

  在每一个方法中,关键字this表示隐式参数。

 

4.访问器方法

  注意不要编写返回引用可变对象的访问器方法。

  如果需要返回一个可变对象的引用,应该首先对它进行克隆。对象clone是指存放在另一个位置上的对象副本。

  凭经验可知,如果需要返回一个可变数据域的拷贝,就应该使用clone。

 

5.final实例域

  可以将实例域定义为final。构建对象时必须初始化这样的域。也就是说,必须确保在每一个构造器执行之后,这个域的值被设置,并且在后面的操作中,不能够再对它进行修改。

  final修饰符大都应用于基本类型域,或不可变类的域(如果类中的每个方法都不会改变其对象,这种就是不可变类。例如,String类就是一个不可变的类。)

  对于可变的类,使用final修饰符可能会对读者造成混乱。例如:

private final StringBuilder evaluations;
evaluation = new StringBuilder();

  final关键字只是表示存储在evaluations变量中的对象引用不会再指示其他StringBuilder对象。不过这个对象可以更改。

public void giveGoldStar()
{evaluations.append(LocalDate.now()+": Gold Star!/n");}

 

6.static

  static方法是一种不能向对象实施操作的方法。换句话说,没有隐式的参数。可以认为static方法是没有this参数的方法。

  所以,static方法不能访问实例域,因为它不能操作对象。但是,static方法可以访问自身类中的static域。

  在下面两种情况下使用static方法:

  1.一个方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如,Math.pow)。

  2.一个方法只需要访问类的static域。

  注:static方法还有另外一种常见的用途。类似LocalDate和NumberFormat的类使用static factory method来构造对象。

NumberFormat currencyFormatter=NumberFormat.getCurrencyInstance();

double x=0.1;
System.out.println(currencyFormatter.format(x));//prints $0.10

  为什么NumberFormat类不利用构造器完成这些操作呢?

  1.无法命名构造器。构造器的名字必须与类名相同。但是,这里希望将得到的货币实例和百分比实例采用不用的名字。

  2.当使用构造器时,无法改变所构造的对象类型。而Factory方法将返回一个DecimalFormat类对象,这是NumberFormat的子类。

 

7.方法参数

  Java总是采用按值调用。也就是说,方法得到的是所有参数数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。

 

8.重载

  Java允许重载任何方法。因此,要完整地描述一个方法需要指出方法名以及参数类型,这叫做方法的签名。而返回类型不是方法签名的一部分。也就是说,不能有两个名字相同,参数类型也相同却返回不同类型值的方法。

 

9.无参数的构造器

  如果在编写一个类时没有编写构造器,那么系统就会提供一个无参数的构造器。如果类中提供了至少一个构造器,但是没有提供无参数的构造器,则在构造对象时如果没有提供参数就会被视为不合法。

  注:请记住,仅当类没有提供任何构造器时,系统才会提供一个默认的构造器。

 

10.调用另一个构造器

  如果构造器的第一个语句形如this(...),这个构造器将调用同一个类的另一个构造器。

 

11.初始化

  下面是调用构造器的具体处理步骤

  1)所有数据域将被初始化为默认值(0,false或null)

  2)按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块

  3)如果构造器第一行调用了第二个构造器,则执行第二个构造器主体

  4)执行这个构造器主体

 

转载于:https://www.cnblogs.com/Miromiaosang/p/8446708.html

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值