Java 面向对象入门

发布时间 2023-12-10 23:10:46作者: 粥粥alg

第一章:类与对象

1.1 类与对象

类与对象的定义和使用
在 Java 中定义类,使用关键字 class 完成。语法如下:

class 类名称 {
    属性 (变量) ;
    行为 (方法) ;
}

我们可以通过下面的实例来感受一下如何定义一个 Person 类。

class Person {     // 类名称首字母大写
    String name ;
    int age ;
    public void tell() {        // 没有static
        System.out.println("姓名:" + name + ",年龄:" + age) ;
    }
}

类定义完成之后,是无法直接使用的。如果要使用,必须依靠对象,那么由于类属于引用数据类型,所以对象的产生格式(两种格式)如下:

(1)格式一:声明并实例化对象

类名称 对象名称 = new 类名称 () ;

(2)格式二:先声明对象,然后实例化对象

类名称 对象名称 = null ;
对象名称 = new 类名称 () ;

1.2 完善合适的类

你需要根据 Main.java 文件中的代码,来完善 Solution 类中的相关代码。在 Solution 类中添加 show() 方法打印信息。

class Solution {
	//write your code here
        String name;
		int age;
        public void show(){
			System.out.printf("Name: %s, age: %d",this.name,this.age);
		}
}

1.3 动物园的新朋友

每天动物园都有可能进来新的朋友,为了方便管理员管理,需要对每个动物起一个名字,并记录这个动物的年龄和种类。
请您在 Animal 类中完成该功能:
创建一个 setAnimalMessage(String name, String type, int age) 方法,设置每个动物的信息。
创建一个方法 printAnimalMessage(),打印动物的信息。打印的格式如下:

姓名 is a 种类 and is 年龄 years old this year。
public class Animal {
    private String name,type;
    private int age;
    public void setAnimalMessage(String name, String type, int age) {
        this.name = name;
        this.type = type;
        this.age = age;
    }

    public void printAnimalMessage() {
		System.out.println(name+" is a "+type+" and is "+age+" years old this year.");
    }
}

第二章:属性和方法

2.1属性和方法

我们可以通过下面的实例来感受一下如何使用对象操作类。
(1)格式一:声明并实例化对象

class Person { 
    String name;
    int age;
    public void get() {
        System.out.println("姓名:" + name + ",年龄:" + age);
    }
}
public class TestDemo {
    public static void main(String args[]) {
        Person per = new Person();//声明并实例化对象
        per.name = "张三";        //操作属性内容
        per.age = 30;            //操作属性内容
        per.get();              //调用类中的get()方法
    }
}

运行结果:
姓名:张三,年龄:30
(2)格式二:先声明对象,然后实例化对象

class Person { 
    String name;
    int age;
    public void get() {
        System.out.println("姓名:" + name + ",年龄:" + age);
    }
}

public class TestDemo {
    public static void main(String args[]) {
        Person per = null;   //声明对象
        per = new Person(); //实例化对象
        per.name = "张三"; //操作属性内容
        per.age = 30;     //操作属性内容
        per.get();       //调用类中的get()方法
    }
}

运行结果:
姓名:张三,年龄:30

2.2补充 Student 类的属性和方法

请根据 Main 中对 Student 类的属性和方法的调用,补充 Student 的属性和方法。

public class Student {
    // write your code here
    String name;
    int age;
    String sex;

//定义常量
    final static String SEX_FEMALE = "female";
    final static String SEX_MALE = "male";
    
    public void setSex(String sex){
        this.sex = sex;
    }
//重写toString方法
    public String toString(){
        return "name = "+name+", age = "+age+", sex = "+sex;
    }

}

2.3 普通单例模式

请实现一个单例模式的类 SingleClass,使 Main 方法可以正确运行。

public class SingleClass {
    public String toString() {
        return "This is a Single Instance Class.";
    }
    
    // write your code here
 //创建 SingleClass 的一个对象
   private static SingleClass instance = new SingleClass();
 
   //让构造函数为 private,这样该类就不会被实例化
   private SingleClass(){}
 
   //获取唯一可用的对象
   public static SingleClass getInstance(){
      return instance;
   }
 
}