精华内容
下载资源
问答
  • Java匿名对象的使用

    2020-05-01 16:40:14
    java匿名对象 1.使用匿名对象调用实例变量和实例方法 2.使用匿名对象向方法传递参数 3.使用匿名对象作为方法返回值

    匿名对象:没有名字的对象
    .
    使用情景:确定一个对象只需要使用唯一的一次

    使用格式:

    (1) new 类名();
    (2) new 类名().实例变量;
    (3) new 类名().实例方法;
    

    1.使用匿名对象调用实例变量和实例方法

    public class Student{
        String name;
        public void study(){
            System.out.println("学习");
            System.out.println("姓名:"+name);
        }
    }
    
    public class Test {
        public static void main(String[] args) {
        //创建有名字的对象
        Student s = new Student();
        s.name = "张三";
        s.study();
    
        //创建匿名对象
        new Student().name = "李四";//匿名对象调用属性
        new Student().study();//匿名对象调用方法
        }
    }
    

    注意事项:

    1.匿名对象可以调用属性但是没有意义
    2.如果需要赋值,就不要使用匿名对象

    2.使用匿名对象向方法传递参数

    public class Test2 {
    
        public static void main(String[] args) {
            //正常方式传递参数
            /*
            Student s = new Student();
            param(s);
             */
            
            //使用匿名对象传递参数
            mParam(new Student());
        }
        
        public static void mParam(Student s){
            System.out.println("已经使用匿名对象传递参数!");
        }
            
    }
    

    3.使用匿名对象作为方法的返回值

    public class Test3 {
    
        public static void main(String[] args) {
            mReturn();
        }
        
        public static Student mReturn(){
            //正常方式作为返回值
            /*
            Student s = new Student();
            return s;
             */
            
            //使用匿名对象作为返回值
            System.out.println("已经使用匿名对象作为返回值!");
            return new Student();
        }
            
    }
    
    展开全文
  • java匿名对象的使用

    2021-01-22 12:27:30
    java匿名对象匿名对象的使用匿名对象的一般用法地址值的输出 本文资料来源自尚硅谷 匿名对象的使用 package come.atguigu.java; public class InstanceTest { public static void main(String[] args){ Phone p ...


    本文资料来源自尚硅谷

    匿名对象的使用

    package come.atguigu.java;
    
    public class InstanceTest {
    	public static void main(String[] args){
    		Phone p = new Phone();		
    		new Phone().price = 1999;
    		new Phone().showPrice();
    
    	}
    }
    
    class Phone{
    	
    	double price;
    	
    	public void sendMessage(){
    		System.out.println("发邮件");
    		
    	}
    	
    	public void playGame(){
    		System.out.println("打游戏");
    	}
    	
    	public void showPrice(){
    		System.out.println("价格为:" + price);
    	}
    }
    

    匿名对象由于没有指定一个变量来承接匿名对象的地址,因此匿名对象是直接在堆空间中开辟了一块空间,虽然也有地址,但是没有栈空间的变量指向它,因此匿名对象只能使用一次.

    注意

    new Phone().price = 1999;
    new Phone().showPrice();
    

    其运行结果为

    价格为:0.0

    因为此处new了两次,实则创建了两个对象,其中一个对象的属性赋值1999.;另一个对象的属性仍然是默认值0.0,由于匿名对象只能使用一次,因此这种用法的意义不太大,一般用来输出语句.

    匿名对象的一般用法

    package come.atguigu.java;
    
    public class InstanceTest {
    	public static void main(String[] args){
    		Phone p = new Phone();
    //		p=null;
    //		System.out.println(p);
    		
    		new Phone().price = 1999;
    		new Phone().showPrice();
    		PhoneMall mall = new PhoneMall();
    		mall.show(new Phone());
    		System.out.println(mall);
    	}
    }
    
    class PhoneMall{
    	public void show(Phone phone){
    		phone.sendMessage();
    		phone.playGame();
    	}
    
    }
    
    class Phone{
    	
    	double price;
    	
    	public void sendMessage(){
    		System.out.println("发邮件");
    		
    	}
    	
    	public void playGame(){
    		System.out.println("打游戏");
    	}
    	
    	public void showPrice(){
    		System.out.println("价格为:" + price);
    	}
    }
    

    创建一个PhoneMall的类,该类方法的形参为一个Phone的自定义类型.

    PhoneMall mall = new PhoneMall();
    mall.show(new Phone());

    这儿的new Phone()的形式为一个匿名对象,但是该实参向形参传递的时候

    class PhoneMall{
    	public void show(Phone phone){
    		phone.sendMessage();
    		phone.playGame();
    	}
    
    }
    

    形参中的phone这个变量开始指向了堆空间中匿名对象的地址,因此它有了栈空间中的变量phone指向堆空间中的地址了,可以使用不止一次.

    地址值的输出

    补充一下:

    Phone p = new Phone();
    //		p=null;
    System.out.println(p);
    

    不加p=null,输出的是地址值,如果加了p=null,输出的是null
    不加的输出结果为

    come.atguigu.java.Phone@15db9742

    ps:如果是创建了对象数组,其数组内默认值是null,赋值后才为对象地址

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
    package com.jk.classdemo;
    
    class Person{
    	private String name;
    	private int age;
    	
    	
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int a) {
    		if(a>=0&&a<=150){
    			age = a;
    		}
    		
    	}
    
    
    	public void tell(){
    		System.out.println("name:"+getName()+"  "+"age:"+getAge());
    	}
    }
    public class ClassDemo01 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Person per=new Person();
    		per.setAge(-30);
    		per.setName("张三");
    		per.tell();
    	}
    
    }

    153207_GRYW_2356966.png

    package com.jk.classdemo;
    
    class Person{
    	public void tell(){
    		System.out.println("hello");
    	}
    }
    public class ClassDemo01 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		new Person().tell();
    		
    	}
    
    }

    154524_Sx7K_2356966.png

    package com.jk.classdemo;
    
    class Person{
    	public Person(){
    		System.out.println("hello");
    	}
    }
    public class ClassDemo01 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Person per=new Person();
    		
    	}
    
    }

    154948_1ant_2356966.png

    package com.jikexueyuan.classdemo;
    
    class Person{
    	String name;
    	int age;
    	String xingbie;
    	public Person(String n,int a){
    		name=n;
    		age=a;
    		System.out.println("name:"+name+"  "+"age:"+age);
    	}
    	public Person(String n,int a,String xb){
    		name=n;
    		age=a;
    		xingbie=xb;
    		System.out.println("name:"+name+"  "+"age:"+age+"  "+"xingbie:"+xingbie);
    	}
    }
    public class ClassDemo01 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Person per=new Person("ssss",34);
    		Person per1=new Person("ddd",23,"man");
    	}
    
    }

    160024_6HNk_2356966.png

    转载于:https://my.oschina.net/u/2356966/blog/408894

    展开全文
  • 1.先创建一个类Anonymous是匿名的意思package LianxiDay1217.重回学Java1.重回学Java2;//先创建一个类,很简单的一个类public class Day1217Person {String name;...}}再创建一个对象创建对象的标准格式:类名称 对...

    1.先创建一个类

    Anonymous是匿名的意思

    package LianxiDay1217.重回学Java1.重回学Java2;

    //先创建一个类,很简单的一个类

    public class Day1217Person {

    String name;

    public void showName(){

    System.out.println("我叫:" + name);

    }

    }

    再创建一个对象

    创建对象的标准格式:

    类名称 对象名 = new类名称();

    匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。

    new类名称();

    注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。

    使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。

    package LianxiDay1217.重回学Java1.重回学Java2;

    public class Day1217Anonymous {

    public static void main(String[] args) {

    //左边的one就是对象的名字

    Day1217Person one = new Day1217Person();

    one.name = "圆圆";

    one.showName(); //我叫圆圆

    System.out.println("----------");

    //匿名对象

    new Day1217Person().name = "满满";

    new Day1217Person().showName();//我叫:null

    }

    }

    再三强调,一定要要类,对象才能实现,单有类是运行不了的,要有对象配合使用。

    2.匿名对象的返回值和参数

    package LianxiDay1217.重回学Java1.重回学Java2;

    import java.util.Scanner;

    public class Day1218Anonymous {

    public static void main(String[] args) {

    //普通使用方式

    // Scanner sc = new Scanner(System.in);

    // int num = sc.nextInt();

    //匿名对象的方式

    // int num = new Scanner(System.in).nextInt();

    // System.out.println("输入的是:" + num);

    //使用一般写法传入参数

    //Scanner sc = new Scanner(System.in);

    //methoParam(sc);

    //使用匿名对象来进行传参

    //methodParam(new Scanner(System.in);

    Scanner sc = methodReturn();

    int num = sc.nextInt();

    System.out.println("输入的是:" + num);

    }

    public static void methodReturn(Scanner sc){

    int num = sc.nextInt();

    System.out.println("输入的是:" + num);

    }

    public static Scanner methodReturn(){

    //Scanner sc = new Scanner(System.in);

    //return sc;

    return new Scanner(System.in);

    }

    }

    本文同步分享在 博客“康贤”(CSDN)。

    如有侵权,请联系 support@oschina.cn 删除。

    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    展开全文
  • 我们知道一般实例化一个对象的格式,如下:Car car = new Car();...那所谓 Java 匿名对象,简单理解就是对象没有名字嘛。那怎样的对象会没有名字呢?如下:new Car();那这种匿名对象如何使用呢?所谓使用就是指...
  • java匿名对象的使用

    千次阅读 2018-10-10 23:38:31
    java匿名对象的的使用 要点 1.创建的类对象是匿名的 1. 当我们只需要一次调用类的对象的时候,我们就可以考虑使用匿名类的创建方式创建匿名类对象。 2. 创建的匿名类对象只能够调用一次! 2.匿名类只能够...
  • java匿名对象的使用

    2020-01-03 20:37:42
    匿名对象 就是没有名字的对象 格式: new 类名(); 有名字的对象:类名 对象名 = new 类名() ;... 2)使用匿名对象的时候,可以链式编程(开发中不建议使用这种方式) new 类名1().方法名1(new 类名2(...
  • Java匿名对象的使用

    2019-08-02 17:50:10
    匿名对象的应用场景: A:通用方法。仅仅只调用一次的时候 注意:调用多次的时候,不适合 那么,这种匿名有什么好处吗? 有,匿名对象调用完毕后就是垃圾,可以被垃圾回收器回收 B:匿名对象可以作为实际参数传递...
  • Java匿名对象

    2020-10-18 14:06:21
    Java匿名对象 匿名对象 创建对象时,只能创建对象语句,不能把对象地址赋值给变量 例如: Scanner scanner = new Scanner(System.in); //不能 new Scanner();//正确 以上得知匿名对象的语法格式为: new 类名...
  • java基础——匿名对象的使用 一、概念 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。说白了就是没有名字的对象。 public class Student{ String name;//学生姓名 public void ...
  • java匿名对象使用情况详解

    千次阅读 2019-02-21 10:03:09
    匿名对象使用方式之一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。 package ObjectOriented; public class Car { private int num; private String color; private void run(){...
  • 匿名对象:没有名字对象。非匿名对象:ClassName c=new ClassName();c.run();匿名对象:new ClassName().run();注意事项:1、当对象对方法仅进行一次调用时候,就可以简化成匿名...匿名对象使用的代码例子:publ...
  • 匿名对象匿名对象的特点创建匿名对象直接使用,没有变量名。new Person().eat() //eat方法被一个没有名字的Person对象调用了。匿名对象在没有指定其引用变量时,只能使用一次。newPerson().eat(); 创建一个匿名对象...
  • 一 匿名对象1.匿名对象的概念匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。例如:public classPerson{public ...2.匿名对象的特点创建匿名对象直接使用,没有变量名。new P...
  • Java匿名对象的介绍

    2017-02-22 13:32:47
    Java匿名对象的介绍匿名对象 使用方式一:当对象方法只调用一次时,可以用匿名对象来完成,这样比较简单:new car().run(); 如果对一个对象进行多个成员调用,就必须给这个对象起个名字 使用方式二:可以将匿名...
  • 一、匿名对象1、概念匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。public classPerson{public... //创建一个匿名对象2、匿名对象的特点l创建匿名对象直接使用,没有变量名。new ...
  • java 匿名对象

    2019-02-25 11:23:31
    匿名对象的概念: 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。 匿名对象的特点: 创建匿名对象直接使用,没有变量名。 匿名对象在没有指定其引用变量时,只能使用一...
  • 创建匿名对象的标准格式: 类名称 对象名 = new 类名称(); 匿名对象就只有右边的对象,没有左边的名字和赋值运算符 new 类名称(); 注意事项: 匿名对象只能使用唯一一次,下次在用不得不在创建一个对象 代码练习: ...
  • 测试案例 public class Demo01Anonymous { public static void main(String[] args) { //左边的one就是对象的名字 Person one = new Person(); one.name = "Martin"; one.showName(); ...
  • java匿名对象

    2020-10-11 16:52:16
    匿名对象 ...匿名对象的应用场景 如果一个对象需要调用一个方法时,调用完之后这个对象就不再使用了,这种情况可以使用匿名对象。 好处: 简化书写 调用完毕后立即释放内存 可以作为实参调用方法 ...
  • JAVA匿名对象

    2020-02-04 10:12:55
    注意事项:匿名对象只能使用唯一一次,下次使用不得不再创建一个新对象。 如果确定有一个对象只需要使用唯一一次,就可以使用匿名对象。 package cn.hu.day01.demo05; public class Person { public String ...
  • Java匿名对象的性能优势分析

    千次阅读 2019-06-02 23:40:10
    Java匿名对象的性能优势分析1. 匿名对象2. Java创建对象的过程3. 性能差异存储上的性能差异垃圾回收上的差异4. 继续 今天思考了一下java在使用匿名方式创建对象和普通的句柄方式对java传递对象的性能进行了一点简单...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,944
精华内容 1,177
关键字:

java匿名对象的使用

java 订阅