匿名对象讲解以及private关键字
匿名对象讲解
没有名称的对象称之为匿名对象
new demo02().change(s);
直接通过new 对象.方法的方式来调用对象中的方法,不再使用对象名的方式来 .方法名
匿名对象的特点:
对象只会被使用一次,作为调用者来说,之后就找不到这个对象了,
如果对象只使用一次的话,那么我们就可以使用匿名对象
匿名对象一旦使用完成就会自动释放,节约内存资源
作为实际参数传递的时候会比较方便
封装(private)
定义:
如果类的成员被private访问控制符来修饰,
则这个成员只能被该类的其他成员访问,其他类无法直接访问。
类的良好封装就是通过private关键字来实现的。
作用:隐藏对象的使用和方法的实现,仅对外提供公共访问的方式
public class PrivateKeyword { public static void main(String[] args) { User user = new User(); user.username = "张三"; user.age = -18; System.out.println(user.username+"\t"+user.age); } } class User{ String username; int age; }
在这个程序中,当年龄输入为-18时,是可以正常输出的,在语法上没有任何问题,
但是在实际生活中不可能有负数的年龄。
为了避免出现上述不合理的问题,在设计一个Java类时,
应该对成员变量的访问作出一些限定,不允许外界随意访问,这就需要实现类的封装
class User{ private String username; private int age; /** * 提供给外界用来修改信息的方法 * @param name */ public void setUsername(String name) { username = name; } public void setAge(int a) { if (a<150 && a>0){ age = a; }else { System.out.println("年龄不合法"); } }
我们使用private关键字将成员变量进行的修饰,就需要编写方法来提供给外界来修改成员变量
public static void main(String[] args) { User user = new User(); user.setUsername("张三"); user.setAge(-18); // System.out.println(user.username+"\t"+user.age); }
运行结果:
编写提供外界获取成员变量值的方法
/** * 提供给外界用来获取信息的方法 * @return */ public String getUsername() { return username; } public int getAge() { return age; }
public static void main(String[] args) { User user = new User(); user.setUsername("张三"); user.setAge(18); System.out.println(user.getUsername()+"\t"+user.getAge()); }
运行结果:
封装(private)的特点:
1、隐藏了功能的实现过程,外界只需要通过公共的访问方式即可。
2、提高了代码的复用性
3、提高了程序的安全性
封装的步骤:
1、讲不需要对外提供的属性和方法封装起来
2、属性隐藏后提供对外访问的接口
private关键字的特点:
1、修饰的成员不能被外部直接访问
2、虽然不能被外部访问,但是可以在本类中是可以直接访问的
private的使用:
1、讲不需要对外访问的属性加上private关键字,同时给共有的get、set方法
2、将本类的构造方法加上private关键字,拒绝外界直接访问创建对象
package com.example.ObjectOriented.KeyWord; public class PrivateKeyword { public static void main(String[] args) { User user = new User(); user.setUsername("张三"); user.setAge(18); System.out.println(user.getUsername()+"\t"+user.getAge()); } } class User{ private String username; private int age; /** * 提供给外界用来修改信息的方法 * @param name */ public void setUsername(String name) { username = name; } public void setAge(int a) { if (a<150 && a>0){ age = a; }else { System.out.println("年龄不合法"); } } /** * 提供给外界用来获取信息的方法 * @return */ public String getUsername() { return username; } public int getAge() { return age; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix