对象的参数传递和匿名类

1 创建的匿名类对象只能调用一次。因为在创建的该对象放在堆内存中,在栈中无引用对象引用。所以下次再调用时,系统将其回收。

package lianxi1;

class Circle{
    int radius;
    public int getRadius(){
        return radius;
    }
    public void setRadius(int radius){
        this.radius = radius;
    }
    public double findArea(int radius){
        return Math.PI*radius*radius;
    }
    public void printCl(){
           System.out.println("可以打印");
       }
}

public class PassObject {

    //打印1到time的整数半径值,和对应面积
    public void printAreas(Circle c,int time){
        int i=1;
        while(i<=time){
            c.setRadius(i);
            System.out.println("i="+c.getRadius()+"\t\t Area="+c.findArea(i));
            i++;
        }
        c.setRadius(i);
    }
    public static void main(String[] args) {
        PassObject po = new PassObject();
        Circle c = new Circle();
        po.printAreas(c, 5);
        System.out.println("radius="+c.getRadius());
        //匿名类的使用
        //1. 用new Circle()设置半径以后,不能再用getRadius打印出该半径。
        po.printAreas(new Circle(), 8);
        new Circle().printCl();
        new Circle().setRadius(3);
        System.out.println("radius="+new Circle().getRadius());

    }

}
时间: 2024-08-05 00:10:56

对象的参数传递和匿名类的相关文章

匿名类和匿名对象

https://blog.csdn.net/qq_39728125/article/details/77119736 匿名类和匿名对象 2017年08月12日 16:19:40 qq_39728125 阅读数:628更多 个人分类: java基础 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_39728125/article/details/77119736 匿名类和匿名对象 在Java中有匿名类和匿名对象的概念,有名字可知他们是因为没有

VAR关键字及匿名类(from www.sysoft.cc)

VAR类型推断关键字,可以自动推断赋值后变量的类型,但只能用于局部变量.不能用于类的成员定义和参数传递.匿名类,即无法定义类,通过系统自动操作生成,如下代码:即建立匿名类型实列ssz,并由系统自动为其定义了name,age,height,job等字段成员,这种定义类似于list<T>泛型的初始化器. static void Main(string[] args) { var ssz = new { Name="施少壮",Age=38,Height=35,Job="

java匿名类和匿名对象及this的其他用法

/* 匿名内部类:就是内部类的简写格式. 必须前提:内部类必须继承或者实现一个类或者接口. 匿名内部类其实就是一个匿名 子类对象. 格式:new 父类对象 or 接口(){ 子类内容:(覆盖父类的, 而且可以增加自己的方法) }//相当于将 继承父类 和 new 的过程 写到了一起有某有!很方便有某有! */ class Outer{ int num; public Outer(){ num = 5; } class Inner{ int num; public Inner(){ num = 1

2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理

package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class TemplateThread { //如果这个方法不想被子类或者别人随意改动[这样子类就不能覆写该方法了],这里方法就要设置为final方法 public final void println(String message){ System.out.println("###################

Kotlin教程学习-伴生对象,getter,setter,内部,局部,匿名类,可变参数

神奇的武汉大学国际软件学院,才大一就要参加暑期实训,现在大二了,考试到7.9,20多天的实训结束了,再过几天,又要提前去上学,可怜我的暑假就这样没了. 接着说Kotlin: 先来看一个名为Message的类 在这个类中有一段包含在companion object中的代码,需要说一下的是,Kotlin的class并不支持static变量,所以需要使用companion object来声明static变量,其实这个platformStatic变量也不是真正的static变量,而是一个伴生对象, 这个

匿名对象和匿名类

一.匿名对象 匿名对象是没有名字的实体,也就是该实体没有对应的变量名引用  匿名对象的特征:            创建的匿名类的对象只能够调用一次            匿名对象只在堆内存中开辟空间,而不存在栈内存的引用            每次创建匿名对象都是不同的对象  package com.yyx.pratice; public class AnonymousObject { public static void main(String[] args) { printStuInfo(

实现接口的匿名类的对象

public class TestUSB { public static void main(String[] args) { Computer c = new Computer(); c.works(new USB() {//接口是没有构造器的,这里不能看作构造器,而是实现接口的匿名类 @Override public void work() { System.out.println("====anonymous usb working===="); } }); } } class

内部类与匿名类(转)

Java 中的内部类和匿名类* 为什么需要内部类? Java 内部类有什么好处?为什么需要内部类? 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口.由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能. 不过你可能要质疑,更改一下方法的不就行了吗? 的确,以此作为设计内部类的理由,实在没有说服力.真正的原因是这样的,java 中的内部类和接口

解决内存泄漏更加清楚的认识到Java匿名类与外部类的关系

1.事件起因 在做项目的时候,通过Android Studio的Memory Monitor窗口观察程序内存使用情况,发现当程序退出的时候,有一部分应该释放掉的内存没有释放掉,知道程序中应该有内存泄漏了.为了发现程序中的内存泄漏,我切换了IDE工具到Eclipse,里面安装了内存泄漏的分析工具MAT,具体怎么用MAT分析内存泄漏可以自己Google,我把我自己找到内存泄漏的地方贴出来 从上图中可以看到,有24M左右的内存被mView(其实它真正是一个Fragment)这个变量持有,导致Java垃