匿名对象讲解以及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;
    }


}
复制代码

 

posted @   xjw12345  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示