JAVA的类和对象

来源:互联网 发布:ubuntu格式化硬盘 编辑:程序博客网 时间:2024/06/05 03:14

类和对象

    万物皆对象

面向对象的优点
一种全新的组织代码的方式
更加符合人类的思维方式
对象
对象就是用来描述客观事物的一个实体,有一组属性和方法构成。是一个能够具体看得见的具体实体

我们把同类型的自定义的数据类型称为类。比如说:演员,厨具。
定义类

public class Actor {    //定义演员类    /** 姓名 */    public String name;    /** 年龄 */    public int age;    /** 职业 */    public String job;    /** 性别 */    public String sex; 

使用对象
创建对象

  • 类名 对象名 = new 类名();
Actor actor1 = new Actor();

引用对象成员:使用“.”进行操作

actor1.name = "孙悟空";    //给name属性赋值actor1.age = 999;       //给age属性赋值

使用==比较变量

  • 基本数据类型:比较两个变量的值是否相等
  • 引用数据类型:比较两个对象是否同一个对象

比较两个对象的内容是否相同

  • 使用equals
    内存的值是否一致

类和对象的关系

  • 类是对象的设计图,对象是类的实体
  • 类是对象的模板,对象是类的实例

代码实例

package com.tx.jason1;import java.util.Scanner;public class ArrayActor {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        Actor[] actor = new Actor[99];      //定义数组类的元素        int count = 0;                      //已录入的总数        String choice = null;               //选择是否继续录入        do{            actor[count] = new Actor();     //每个数组对象在使用前都要赋空间            System.out.println("请输入英雄");            System.out.print("姓名:");            actor[count].name = input.next();            System.out.print("年龄:");            actor[count].age = input.nextInt();            System.out.print("职业:");            actor[count].job = input.next();            System.out.print("性别:");            actor[count].sex = input.next();            count++;                        //每录入一个英雄,英雄的总数都要+1            System.out.println("是否继续(y/n)");            choice = input.next();        }while("y".equalsIgnoreCase(choice));   //判断是否继续录入英雄        /** 打印每个英雄的信息 */        System.out.println("输入的英雄如下");        System.out.println("姓名\t年龄\t职业\t性别");        for (int i = 0; i < count; i++) {            System.out.println(actor[i]);        }        /*         * 排序英雄的年龄大小         */        for (int i = 0; i < count - 1; i++) {            for (int j = 0; j < count - i - 1; j++) {                if(actor[j].age > actor[j + 1].age){                    Actor temp = actor[j];                    actor[j] = actor[j + 1];                    actor[j + 1] = temp;                }            }        }        System.out.println("排序后");        System.out.println("姓名\t年龄\t职业\t性别");        for (int i = 0; i < count; i++) {            System.out.println(actor[i]);        }        /*         * 删除英雄的步骤         */        System.out.println("请输入要删除的英雄");        String delnum = input.next();           int delIndex = -1;      //要删除英雄的索引        for (int i = 0; i < count; i++) {                   if(delnum.equals(actor[i].name)){//如果要删除英雄的名字和定义英雄的名字形同                delIndex = i;       //就记录它的索引                break;            }        }        if(delIndex == -1){     //如果没有这个英雄的姓名,就没有要删除的目标            System.out.println("没有找到");        }else{            for (int i = delIndex; i < count - 1; i++) {//从要删除的英雄索引开始,遍历总英雄-1的元素                actor[i] = actor[i + 1];    //把后一个英雄的信息覆盖前一个英雄的信息            }            count--;        //总英雄长度-1        }        /*         * 打印删除英雄后的信息         */        System.out.println("删除后如下");        System.out.println("姓名\t年龄\t职业\t性别");        for (int i = 0; i < count; i++) {            System.out.println(actor[i]);        }        int setIndex = -1;  //定义要找到英雄的索引        /* 录入每个英雄的元素 */        System.out.println("请输入新的英雄信息");        Actor setnum = new Actor();        System.out.println("请输入英雄");        System.out.print("姓名:");        setnum.name = input.next();        System.out.print("年龄:");        setnum.age = input.nextInt();        System.out.print("职业:");        setnum.job = input.next();        System.out.print("性别:");        setnum.sex = input.next();        count++;                    //录入英雄后的总数+1        for (int i = 0; i < count; i++) {            if(setnum.age < actor[i].age){  //如果新录入英雄的年龄要比录入英雄小                setIndex = i;   //记录索引                break;            }        }        if(setIndex == -1){     //如果没有找到            actor[count] = setnum;  //把新录入英雄的放到最后的位置        }else{//否则从英雄的总数量-1开始遍历,到记录的索引            for (int i = count - 1; i >= setIndex; i--) {                actor[i + 1] = actor[i];    //把前面一个值赋给后面一个值            }            actor[setIndex] = setnum;   //把新录入的值赋给记录索引的位置        }        System.out.println("添加后");        System.out.println("姓名\t年龄\t职业\t性别");        for (int i = 0; i < count; i++) {            System.out.println(actor[i]);        }    }}
                            ——By 莫名 2017年12月12日