-
类是一组具有相同属性和行为的对象的抽象。
-
类及类的关系构成了对象模型的主要内容。
-
面向对象编程的主要任务就是定义对象模型中的各个类。
1.定义类(class)
//定义静态属性--班费
//在类中被定义为静态的属性将被所有该类创建的对象所共享
static double classFees = 1000;
定义方法如下:
public class Student {
}
1.1静态属性(类属性)
//定义静态属性--班费
static double classFees = 1000;
在类中被定义为静态的属性将被所有该类创建的对象所共享,如学生A用了100元剩900元,学生B再用100元就剩800元.
1.2实例属性
//定义私有属性--姓名,年龄,性别
private String name;
private int age;
private String gender;
实例属性每个对象独自拥有,与其他对象的实例属性相互独立。
这里定义为private(私有化)是为后续封装做准备。
1.3构造方法(构造函数)
//构造方法(空参)
public Student() {
}
类创建对象时就是通过构造函数进行创建。如:Student joe= new Student();
此时调用的方法就是空参构造。
空参构造是系统默认的构造方法,不写也会拥有。
但当创建有参构造后系统默认的空参构造将会失效,所以一般会将有参无参构造都写出来。
//构造方法(有参)
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
这是有参构造,如:Student jonny= new Student("jonny",18,"男");
在创建对象时就可以直接将参数传进去,注意输入类型,顺序要一致。
构造方法参数列表中的数量,顺序可以进行变更,来适配更多的输入情况。
1.4Getter与Setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
此处只列出了name属性的Getter和Setter方法,其他属性与此类同。
定义get和set方法代替直接通过 对象名.属性 也同样是为封装做准备。
1.5toString方法
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
一般通过重写toString方法来输出对象的属性,在重写之前如果打印对象,输出的是该对象存储的地址。
2.对象(Object)
2.1实例化对象
如上文所说,实例化对象通过构造方法实现。
//无参构造
Student mike = new Student();
//有参构造
Student rose = new Student("rose",18,"女");
2.2对象属性操作(Getter与Setter)
可以通过set方法来设置属性
mike.setName("mike");
mike.setAge(19);
mike.setGender("男");
在设置之前输出mike的结果是
造成这个的原因是在创建mike对象是用的空参构造,没有参数,所以是默认值null与0。
在设置后的打印结果为
通过get方法获得属性值
System.out.println("mike的name属性是:" + mike.getName());
3.结语
本篇笔记记录了面向对象中关于创建类和实例化对象的部分,为后续封装继承和多态做准备。
标签:mike,java,name,对象,笔记,面向对象,String,Student,属性 From: https://blog.csdn.net/qq_46108647/article/details/143816946