类和对象
开始我们就不讲那些把大象放冰箱需要几步来引入面向对象的例子了,直接上干货。
在Java中,类是对现实世界中某一类事物的抽象描述。它包含了该类事物的属性和方法。属性用于描述事物的状态,而方法则用于描述事物可以做的事情。对象也就时类的实例,通过关键字new出来一个具体的对象。
举个例子吧:
public class Student {
//成员变量,也就是Student类包括的属性
public String sno;
public String name;
public String gender;
public int age;
public int score;
//成员方法
public static void printName(String name){
System.out.println(name);
}
//测试
public static void main(String[] args) {
Student s1 = new Student();
s1.name = "张三";
printName(s1.name);
}
}
其实类和C语言中的结构体差不多,当我们在主函数中创建一个类的对象时,是通过 new 关键字来实现的,然后通过对象名 + . 来获取属性
注意事项:
1.类名首字母要大写,见名知意,驼峰模式,也就是多个单词组成一个单词,每个单词首字母大写
2.一个Java文件可以定义多个class类,但用public修饰的类名要和文件名一致
3.建议一个类一个java文件
this 关键字
如果说我们想要在Student类中写一个setName的方法,但是我们定义变量名要采用见名知意的方法,那么此时我们再用name,就和之前定义的属性name冲突了,就会产生以下的矛盾,因为此时name在方法体内,变成了局部变量,根据局部优先的原则,此时就是两个空值在互相赋值
public void setName(String name) {
name = name;
}
那么怎么解决呢?通过this关键字就可以区分成员变量和局部变量
private String name;
private int age;
private String sex;
public void printAge(int age){
age = 10;
System.out.println(age);//局部变量,输出10
System.out.println(this.age);//成员变量,输出0
}
构造方法
作用:在创建对象的时候给成员变量进行赋值
特点:
1.方法名与类名完全相同
2.没有返回值类型,void 也不用写
3.没有返回值
public class Student {
private String name;
private int age;
private String sex;
//空参构造
public Student(){
}
//带全部参数的构造方法
public Student(String name,int age,String sex){
this.name=name;
this.age=age;
this.sex=sex;
}
public static void main(String[] args) {
Student s1 = new Student();//调用空参构造
Student s2 = new Student("张三",20,"男");//调用构造方法
}
}
注意:
如果没有定义构造方法,系统将给出一个默认的无参构造方法
如果定义了构造方法,系统就不再默认提供构造方法
推荐:
无论是否使用,都手动书写无参构造方法和带全部参数的构造方法
标准JavaBean
用来描述一类事物的类就叫做JavaBean类,在JavaBean中是不用写main方法的,之前写的编写main方法的类叫做测试类,在测试类中,创建JavaBean的对象进行赋值调用
一个标准的JavaBean要做到以下要求:
1.类名见名知意
2.成员变量用private修饰
3.至少提供两个构造方法(无参,带全部参数)
4.提供每一个成员变量的get,set方法
可以通过alt + insert快捷键来一键生成构造方法和get,set方法
另外还有一个好用到起飞的一键生成标准javabean的插件
装好之后就可以鼠标右键,找到ptg to javabean
以下就是一个标准的JavaBean类
public class Student {
private String name;
private int age;
private String sex;
//空参构造
public Student(){
}
//带全部参数的构造方法
public Student(String name,int age,String sex){
this.name=name;
this.age=age;
this.sex=sex;
}
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student("张三",20,"男");
}
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 getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String toString() {
return "Student{name = " + name + ", age = " + age + ", sex = " + sex + "}";
}
}
关于类和对象的内容就简单介绍到这里啦