JAVA(九)java面向对象3-匿名对象

匿名对象

匿名对象:
没有名字的实体,也就是该实体没有对应的变量名引用。
匿名对象的用途
当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化。为什么只对方法,而不调用属性呢?因为匿名对象调用属性没意义。如果对象要多成员进行多次调用,必须给对象起个名字。不能使用匿名对象。
匿名对象的简单演示
接上一篇的汽车run方法。

new Car().run(); 

内存结构图(我好懒,不画了。)
new Car().num=5;
new Car().clor=”blue”;
两个new 是两个不同的对象,在堆内存中有不同的空间,相互不相互干扰。
匿名对象的使用
当只使用一次时可以使用匿名对象。执行完毕到;后该对象就变成了垃圾。执行方法时,可以将匿名对象作为实际参数,传递进去
封装
封装的好处:
1:隐藏了类的具体实现
2:操作简单
3:提高对象数据的安全性

/**
 Demo9描述一个计算器类。
 */
//使用词霸确定类名
class Calculator
{
    // 1. 查看具体的计算器对象抽取所有计算器具有的共同属性
    public String name = "我的计算器我做主";
    public double num1;
    public double num2;
    public char option;
    // 2. 查看具体的计算器对象抽取所有计算器具有的共同功能
    // 2.1  定义接受数据的功能函数
    public void init( double a , char op , double b  ){

        num1 = a;
        option  = op;
        num2 = b;
    }
    // 2.2 定义计算的功能
    public void calculate(){

       switch ( option )
       {
       case '+': System.out.println(  name + " : " + num1 + " + " + num2 + " = " + ( num1 + num2 ) );
                 break;
       case '-': System.out.println(  name + " : " + num1 + " - " + num2 + " = " + ( num1 - num2 ) );
                 break;
       case '*': System.out.println(  name + " : " + num1 + " * " + num2 + " = " + ( num1 * num2 ) );
                 break;
       case '/': {
                 if( num2 != 0 ) 
                    System.out.println(  name + " : " + num1 + " / " + num2 + " = " + ( num1 / num2 ) );
                 else
                    System.out.println("除数不能为0!");
                 break;
                 }
       case '%': {
                 // 1.处理结果的符号问题,使得结果的符号满足数学的要求
                 // 2.解决NaN的问题
                 System.out.println(  name + " : " + num1 + " % " + num2 + " = " + ( num1 % num2 ) );
                 break;
                 }
       default : System.out.println("你在捣乱,我不理你,气死你......");

       }

    }
}
class Demo9 
{
    public static void main(String[] args) 
    {

        Calculator  cal = new Calculator();
        cal.init( 41 , '%' , 0 );
        cal.calculate();
        System.out.println("计算完毕!再来一次......");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值