张老太养了两只猫猫:一只名字叫小白,今年 3 岁,白色。还有一只叫小花,今年 100 岁,花色。请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色。如果用户输入的小猫名错误,则显示 张老太没有这只猫猫。
面向对象对象之前可以解决的方法有: 1) 单独的定义变量解决 2) 使用数组解决
其主要原因就是:不利于数据的管理 效率低,===》 从而引出我们的新知识点:类与对象
java 设计者 引入 类与对象(OOP) ,根本原因就是现有的技术,不能完美的解决新的新的需求.
代码呈现: Object01.java
public class object01 { //编写一个 main 方法 public static void main(String[] args) { /* 张老太养了两只猫猫:一只名字叫小白,今年 3 岁,白色。 还有一只叫小花,今年 100 岁,花色。请编写一个程序,当用户输入小猫的名字时, 就显示该猫的名字,年龄,颜色。 如果用户输入的小猫名错误,则显示 张老太没有这只猫猫。 */ //单独变量来解决 => 不利于数据的管理(把一只猫的信息拆解了) //第 1 只猫信息 // String cat1Name = "小白"; // int cat1Age = 3; // String cat1Color = "白色"; // //第 2 只猫信息 // String cat2Name = "小花"; // int cat2Age = 100; // String cat2Color = "花色"; //数组 ===> // 1)数据类型体现不出来( // 2) 只能通过[下标]获取信息,造成变量名字和内容的对应关系不明确 //(3) 不能体现猫的行为 // 第 1 只猫信息 // String[] cat1 = {"小白", "3", "白色"}; // String[] cat2 = {"小花", "100", "花色"}; // 使用 OOP 面向对象解决 //实例化一只猫[创建一只猫对象] //老韩解读 //1. new Cat() 创建一只猫(猫对象) //2. Cat cat1 = new Cat(); 把创建的猫赋给 cat1 //3. cat1 就是一个对象 //创建了第一只猫,取名为cat1 Cat cat1 = new Cat(); cat1.name = "小白"; cat1.age = 3; cat1.color = "白色"; cat1.weight = 10; //创建了第二只猫,并赋给 cat2 //cat2 也是一个对象(猫对象) Cat cat2 = new Cat(); cat2.name = "小花"; cat2.age = 100; cat2.color = "花色"; cat2.weight = 20; //怎么访问对象的属性呢 System.out.println("第 1 只猫信息" + cat1.name + " " + cat1.age + " " + cat1.color + " " + cat1.weight); System.out.println("第 2 只猫信息" + cat2.name + " " + cat2.age + " " + cat2.color + " " + cat2.weight); } } // 把这个类定位到主类的后面。 //使用面向对象的方式来解决养猫问题 定义一个猫类 Cat -> 自定义的数据类型 class Cat { //属性/成员变量 String name; //名字 int age; //年龄 String color; //颜色 double weight; //重量 //double weight; //体重 //行为 }
类可以与主类卸载通过一个class文件中。
也可以写在单独的class文件中,在主类中可以调用其他类,使用import语句(如果主类和定义类在一个文件夹之下,不用导入,如果不在需要导入。)======
一个main方法中,如果单独实例化两个对象,则互不影响,如果一个对象是由另外一个对象赋值而得到,则会相互影响
======