Files
javaSE-0113/day06/src/com/inmind/object01/Student.java

130 lines
3.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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){
/*
当前代码想要的效果:成员变量 = 局部变量
但当前的效果:局部变量 = 局部变量
如何解决当前重名的问题???
使用thisthis.成员变量名,一定表示当前对象的成员变量
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+"");
}
}