当前位置: 首页 > news >正文

Java中OOP对象和引用

看注释:

class Person2 {
    String name;
    int score;
    String phone;
}
class App {
    public static void main(String[] args) {

        int size = 20;
        Person p1 = new Person();
        Person p2 = new Person();
        /*
        Person p3 = p1;
        p2 = p3;
        这三个p1,p2,p3,都只是一个引用类型,只存在两个new出来的对象,而第14行p2指向了第一个引用的
        对象后,第二个对象唯一的“线”就“断”了,有Java中的GC(垃圾回收机制)标记,当内存分配给其他不够时
        这款内存就会比用掉。比喻:对象为两个空调,而这三个引用类型相当于三个遥控器,连着这两个对象,进行操作。
        */
        /*对象必须要有引用,一旦没有引用指向,在特定是条件和时机后,就会被...*/
        p1.name = "Alice";
        p1.score = 98;
        p1.phone = "12131";

        p2.name = "Bob";
        p2.score = 95;
        p2.phone = "12134";
        Person tmp;
        tmp = p1;
        tmp.score = 100;
        System.out.println(p1.score);//打印100
        /*在这里tmp和p1指向的都是一个对象,所以改变tmp的数据对象的值,p1的也同样变了
        */
       }
}

class Person {
    String name;
    int score;
    String phone;

    void display() {
        System.out.printf("name=%s\tscore=%d\tphone=%s\n",name,score,phone);
    }

}

class App3 {

    public static void main(String[] args) {

        int size = 20;
        Person p1 = new Person();
        Person p2 = new Person();

        p1.name = "Alice";
        p1.score = 98;
        p1.phone = "12131";

        p2.name = "Bob";
        p2.score = 95;
        p2.phone = "12134";


        Person[] ps = new Person[3];
        p1 = new Person();
        p1.name = "Alice";
        p1.score = 98;
        p1.phone = "12131";

        ps[0] = p2;
        ps[1] = p1;
        ps[2] = new Person();
        ps[2].name = "Jack";
        ps[2].score = 90;
        ps[2].phone = "33231";

        // ps[1] = new Person();//如果又new了一个,则ps[1]指向的是新的空的才分配出来的一个对象

        for(Person person : ps)
            person.display();
            System.out.println();

        for(int i = 0; i < ps.length; i++) {
            Person p = ps[i];
            p.display();
        }
        for(int j = 0; j<ps.length-1; j++){
        for(int i = 0; i<ps.length-1; i++) {
            if(ps[i].score < ps[i+1].score) {
                Person t = ps[i];
                ps[i] = ps[i+1];
                ps[i+1] = t;
            }
        }
       }
       System.out.println();
       for(Person person : ps)
           person.display();
           System.out.println();
   }
}

class Person {
    String name;
    int score;
    String phone;

    void display() {
        System.out.printf("name=%s\tscore=%d\tphone=%s\n",name,score,phone);
    }

    String sayHello(String msg) {
        return "你好,"+msg+",我是"+name;
    }
}

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

        int size = 20;
        Person p1 = new Person();
        Person p2 = new Person();

        p1.name = "Alice";
        p1.score = 98;
        p1.phone = "12131";

        p2.name = "Bob";
        p2.score = 95;
        p2.phone = "12134";

        p1.display();
        p2.display();
        System.out.println(p1.sayHello("2017"));

        //交换演示//
        Person tmp;
        tmp = p1;
        p1 = p2;
        p2 = tmp;
        p1.display();
        p2.display();


       }
}

import java.util.Scanner;

class Book {
    String bookName;
    int price;
    String writer;
  //书名
  //价格
  //作者
  void display() {
      System.out.printf("书名:%s\t价格:%d\t作者:%s\n",bookName,price,writer);
  }
}

class BookManage {

    static void Bsort(Book[] book ) {
        for(int j = 0; j < book.length-1; j++){
            for(int i = 0; i < book.length-1; i++) {
                if(book[i].price>book[i+1].price) {
                    Book tmp = book[i];
                    book[i] = book[i+1];
                    book[i+1] = tmp;
                }
            }
    }
}
    public static void main(String[] args) {
    	int number = 5;
        Scanner cin = new Scanner(System.in);
        Book[] book = new Book[number];
        for(int i = 0; i <number; i++) {
            book[i] = new Book();
            System.out.println("请输入第"+(i+1)+"本书的名子");
            book[i].bookName = cin.next();
            System.out.println("请输入第"+(i+1)+"本书的价格");
            book[i].price = cin.nextInt();
            System.out.println("请输入第"+(i+1)+"本书的作者");
            book[i].writer = cin.next();
        }
        System.out.println();
        Bsort(book);
        for(Book bookt:book)
            bookt.display();
        //录入五本书的信息
        //按照价格降序排序
        //格式化输出信息
    }
}



转载于:https://www.cnblogs.com/zhangmingzhao/p/7256684.html

相关文章:

  • 制作软件启动画面
  • centos7 给未知屏幕添加分辨率
  • 用DuinoMite-Mini做的苹果电脑
  • 处理ERP 中BILLING被锁住的方法
  • Interview
  • 使用SQLDMO中“接口SQLDMO.Namelist 的 QueryInterface 失败”异常的解决方法
  • filezilla
  • 管理十大经典理论[转]
  • C# 中的委托
  • 利用v$enqueue_lock解决ORA-14450的错误
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • 23种设计模式彩图
  • Html5 8个强大的基于Bootstrap的CSS框架
  • url定向的问题
  • es6要点
  • [译]CSS 居中(Center)方法大合集
  • [译]如何构建服务器端web组件,为何要构建?
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • echarts花样作死的坑
  • Java 多线程编程之:notify 和 wait 用法
  • javascript 哈希表
  • LeetCode18.四数之和 JavaScript
  • Next.js之基础概念(二)
  • Octave 入门
  • React系列之 Redux 架构模式
  • Redis字符串类型内部编码剖析
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Xmanager 远程桌面 CentOS 7
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 关于Java中分层中遇到的一些问题
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于组件的设计工作流与界面抽象
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 爬虫模拟登陆 SegmentFault
  • 推荐一个React的管理后台框架
  • 微信小程序:实现悬浮返回和分享按钮
  • #include到底该写在哪
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (39)STM32——FLASH闪存
  • (4)事件处理——(7)简单事件(Simple events)
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (力扣题库)跳跃游戏II(c++)
  • (三)docker:Dockerfile构建容器运行jar包
  • (四)汇编语言——简单程序
  • (转)setTimeout 和 setInterval 的区别
  • *p++,*(p++),*++p,(*p)++区别?
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃