| 现在有一只羊tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom羊 属性完全相同的10只羊 |

| package com.atguigu.prototype; |
| |
| public class Sheep { |
| |
| private String name; |
| |
| private int age; |
| |
| private String color; |
| |
| public Sheep(String name, int age, String color) { |
| super(); |
| this.name = name; |
| this.age = age; |
| this.color = color; |
| } |
| |
| public String getName() { |
| return name; |
| } |
| |
| public void setName(String name) { |
| this.name = name; |
| } |
| |
| public int getAge() { |
| return age; |
| } |
| |
| public void setAge(int age) { |
| this.age = age; |
| } |
| |
| public String getColor() { |
| return color; |
| } |
| |
| public void setColor(String color) { |
| this.color = color; |
| } |
| |
| @Override |
| public String toString() { |
| return "Sheep [name=" + name + ", age=" + age + ", color=" + color + "]"; |
| } |
| |
| } |
| |
| package com.atguigu.prototype; |
| |
| public class Client { |
| |
| public static void main(String[] args) { |
| |
| |
| Sheep sheep = new Sheep("tom", 1, "白色"); |
| |
| Sheep sheep2 = new Sheep(sheep.getName(), sheep.getAge(), sheep.getColor()); |
| Sheep sheep3 = new Sheep(sheep.getName(), sheep.getAge(), sheep.getColor()); |
| Sheep sheep4 = new Sheep(sheep.getName(), sheep.getAge(), sheep.getColor()); |
| Sheep sheep5 = new Sheep(sheep.getName(), sheep.getAge(), sheep.getColor()); |
| |
| |
| System.out.println(sheep); |
| System.out.println(sheep2); |
| System.out.println(sheep3); |
| System.out.println(sheep4); |
| System.out.println(sheep5); |
| |
| } |
| |
| } |
| 1) 优点是比较好理解,简单易操作。 |
| 2) 在创建新的对象时,总是需要重新获取原始对象的属性,如果创建的对象比较复杂时,效率较低 |
| 3) 总是需要重新初始化对象,而不是动态地获得对象运行时的状态, 不够灵活 |
| 4) 改进的思路分析 |
| 思路:Java中Object类是所有类的根类,Object类提供了一个clone()方法,该方法可以将一个Java对象复制一份,但是需要实现clone的Java类必须要实现一个接口Cloneable, |
| 该接口表示该类能够复制且具有复制的能力 => 原型模式 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术