130 lines
3.9 KiB
Java
130 lines
3.9 KiB
Java
package com.inmind.object01;
|
||
/*
|
||
类定义的总结:
|
||
1.在java中描述一类事物,是要有特征(成员变量)和行为(功能方法,不要用static来修饰)来组成
|
||
2.在类中并不是都必须要主方法的,如果一个类要运行,并得到一些结果,那么就必须要主方法
|
||
在java中一个类只是用来描述一类事物的时候,那么就不要主方法。
|
||
*/
|
||
//------------------------------------------------------
|
||
/*
|
||
构造方法
|
||
Student():就是学生类的默认无参构造方法
|
||
|
||
普通自定义方法
|
||
方法修饰符 返回值类型 方法名(参数列表){
|
||
方法体;return
|
||
}
|
||
|
||
构造方法
|
||
方法修饰符 构造方法名(参数列表){
|
||
方法体
|
||
}
|
||
|
||
构造方法:1.没有返回值类型
|
||
2.构造方法名必须跟类名一致
|
||
|
||
注意:当源文件,进行编译之后编译器扫描整个类的内容,如果它发现你没写构造方法,它会帮你自动添加一个
|
||
默认的无参构造方法。如果你写了构造方法,编译器就不会自动添加一个默认的无参构造方法
|
||
|
||
构造方法是可以重载的。
|
||
|
||
构造方法的作用:通过new调用该构造方法,创建对象,并且对该对象的属性进行赋值
|
||
|
||
有参构造方法:创建对象并赋值指定的值
|
||
无参构造方法:创建对象并赋值默认初始化值
|
||
*/
|
||
|
||
|
||
public class Student {
|
||
|
||
//特征
|
||
//姓名
|
||
private String name;
|
||
//年龄
|
||
private int age = 18;
|
||
//学号
|
||
private int id;
|
||
//性别
|
||
private String gender;
|
||
//成绩
|
||
private double score;
|
||
|
||
|
||
//无参构造方法,如果类中没有构造方法,编译器主动自动添加无参构造
|
||
public Student(){
|
||
//对所有的属性设置默认值
|
||
}
|
||
|
||
//有参构造方法
|
||
public Student(String name){
|
||
//针对指定的属性赋值,其他的属性默认
|
||
this.name = name;
|
||
}
|
||
|
||
//2个参数
|
||
public Student(String name,int age){
|
||
//针对指定的属性赋值,其他的属性默认
|
||
this.name = name;
|
||
this.age = age;
|
||
}
|
||
|
||
|
||
|
||
//使用get/setXXX方法来对private修饰的成员变量,进行取值和赋值
|
||
|
||
public String getName(){
|
||
return name;
|
||
}
|
||
|
||
|
||
|
||
//定义变量,要见其名,知其意
|
||
public void setName(String name){
|
||
/*
|
||
当前代码想要的效果:成员变量 = 局部变量
|
||
但当前的效果:局部变量 = 局部变量
|
||
如何解决当前重名的问题???
|
||
使用this:this.成员变量名,一定表示当前对象的成员变量
|
||
this:表示一个对象,哪个对象调用了当前的方法,那么这个this就表示该对象
|
||
*/
|
||
//name = name;局部变量name赋值给了局部变量name,就近原则
|
||
System.out.println("this的内容:"+this);
|
||
//注意:类中的所有的成员,前面都应该加上this.,如果没加,编译器会帮我们自动加上
|
||
|
||
this.name = name;//name属性 = name局部变量
|
||
}
|
||
public int getAge(){
|
||
return age;
|
||
}
|
||
public void setAge(int age){
|
||
if (age < 0||age >100) {
|
||
System.out.println("您传递的年龄有误,只能是0~100的值");
|
||
//不对当前的属性进行赋值(让方法提前结束)
|
||
return;//结束方法,如果有返回值,就会把值返回
|
||
}
|
||
this.age = age;//对属性进行赋值
|
||
}
|
||
|
||
|
||
//行为(在描述一类事物时,设置的方法就不要加static)
|
||
|
||
//吃饭
|
||
public void eat(String food) {
|
||
System.out.println(this.name+"学生在吃饭,吃"+food);
|
||
}
|
||
|
||
//睡觉
|
||
public void sleep() {
|
||
System.out.println(this.name+"学生在睡觉");
|
||
}
|
||
|
||
//学习
|
||
public void study(String book) {
|
||
System.out.println(this.name+"学生在学习,学"+book);
|
||
}
|
||
|
||
public void show() {
|
||
System.out.println("我叫"+name+",今年"+age+"岁");
|
||
}
|
||
}
|