java程序demo
时间: 2024-06-14 13:08:36 浏览: 11
当然可以!以下是一个简单的Java程序示例,用于打印“Hello, World!”:
```java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
```
这个程序定义了一个名为`HelloWorld`的类,其中包含一个名为`main`的静态方法。在`main`方法中,使用`System.out.println`语句打印出了字符串“Hello, World!”。
你可以将以上代码保存为一个名为`HelloWorld.java`的文件,并使用Java编译器进行编译。编译成功后,运行该程序将输出“Hello, World!”。
相关问题
原型模式java程序demo
下面是一个简单的Java程序示例,演示如何使用原型模式来创建对象的副本:
```java
import java.util.ArrayList;
import java.util.List;
public class PrototypeDemo {
public static void main(String[] args) {
// 创建一个原型对象
Person person = new Person();
person.setName("Tom");
person.setAge(20);
List<String> hobbies = new ArrayList<>();
hobbies.add("Swimming");
hobbies.add("Reading");
person.setHobbies(hobbies);
// 创建对象的副本
Person clone = person.clone();
System.out.println(clone.getName());
System.out.println(clone.getAge());
System.out.println(clone.getHobbies());
// 修改对象的副本
clone.setName("Jerry");
clone.getHobbies().add("Traveling");
System.out.println(clone.getName());
System.out.println(clone.getAge());
System.out.println(clone.getHobbies());
// 原型对象不受影响
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getHobbies());
}
}
class Person implements Cloneable {
private String name;
private int age;
private List<String> hobbies;
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 List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
@Override
public Person clone() {
try {
Person clone = (Person) super.clone();
clone.setHobbies(new ArrayList<>(this.getHobbies()));
return clone;
} catch (CloneNotSupportedException e) {
return null;
}
}
}
```
在这个例子中,我们创建了一个`Person`类作为原型对象,并实现了`Cloneable`接口来表明该类是可克隆的。我们使用`clone()`方法来创建`Person`对象的副本。请注意,在实现`clone()`方法时,我们需要注意:
- 调用父类的`clone()`方法以创建对象的副本;
- 对于可变的属性(如`hobbies`),需要创建一个新的对象来存储属性值,以避免副本和原型对象之间的共享。
在`main()`方法中,我们首先创建了一个`Person`对象,并将其赋值给变量`person`。然后,我们使用`clone()`方法来创建`person`对象的副本,并将其赋值给变量`clone`。`clone`对象的属性值与`person`对象的属性值相同。
然后,我们修改`clone`对象的一些属性值,例如`name`和`hobbies`。我们发现,这些修改不会影响原型对象`person`的属性值,因为`clone`对象和`person`对象是独立的。
建造者模式java程序demo
好的,下面是建造者模式的Java程序示例:
```
// Product类,表示需要被构建的复杂对象
class Product {
private String partA;
private String partB;
private String partC;
public void setPartA(String partA) {
this.partA = partA;
}
public void setPartB(String partB) {
this.partB = partB;
}
public void setPartC(String partC) {
this.partC = partC;
}
public String getPartA() {
return partA;
}
public String getPartB() {
return partB;
}
public String getPartC() {
return partC;
}
}
// Builder类,定义了如何构建Product对象的接口
abstract class Builder {
protected Product product = new Product();
public abstract void buildPartA();
public abstract void buildPartB();
public abstract void buildPartC();
public Product getResult() {
return product;
}
}
// ConcreteBuilder类,实现了Builder接口,构建具体的Product对象
class ConcreteBuilder extends Builder {
public void buildPartA() {
product.setPartA("PartA");
}
public void buildPartB() {
product.setPartB("PartB");
}
public void buildPartC() {
product.setPartC("PartC");
}
}
// Director类,使用Builder接口来构建Product对象
class Director {
private Builder builder;
public Director(Builder builder) {
this.builder = builder;
}
public void construct() {
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
}
}
// 测试程序
public class BuilderDemo {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.getResult();
System.out.println(product.getPartA() + " " + product.getPartB() + " " + product.getPartC());
}
}
```
这个示例中,Product类表示需要被构建的复杂对象,Builder类定义了如何构建Product对象的接口,ConcreteBuilder类实现了Builder接口,构建具体的Product对象,Director类使用Builder接口来构建Product对象。在测试程序中,首先创建了一个ConcreteBuilder对象和一个Director对象,然后通过Director对象来构建Product对象,最后获取构建完成的Product对象并输出。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)