类和对象的关系
- 类是对象的抽象化描述,这些对象具有相同的特征和动作,即属性和方法。
- 对象就是用来描述客观存在、由属性和方法构成的某个实体,对象是类的具体实例。
定义类
- 定义属性需要指定其数据类型,语法比较简单。
- 方法的定义比属性稍微复杂一些,有两个重点:返回值类型和参数列表。
构造函数
- 构造函数包括有参构造和无参构造。
- 每个类都默认有一个无参构造,我们在定义类时不需要声明无参构造函数,便可直接调用来创建对象,但是如果手动调用一个有参构造函数,就会覆盖掉默认的无参构造函数。
- 构造函数特殊之处:
public Student(){
}
public Student(int num1 ,int num2){
}
public void Year(){
}
public int Year(int num1){
return num1;
}
创建对象
- 无参构造创建的对象,不会给属性赋值,需要手动给属性赋值。— 先创建在赋值。
- 调用有参构造,则不需要在构造函数外部进行属性赋值,构造函数本身就会为创建好的对象赋值,只需要再调用有参构造时将属性值作为参数传入即可。— 边创建边赋值。
public class User{
public Stirng name;
public int year;
public User(){
}
public User(String name, int year) {
super();
this.name = name;
this.year = year;
}
}
public class Student{
private long sID;
private String sName;
private char sGender;
public long getsID() {
return sID;
}
public void setsID(long sID) {
this.sID = sID;
}
public String getsName() {
return sName;
}
public void setsName(String sName) {
this.sName = sName;
}
public char getsGender() {
return sGender;
}
public void setsGender(char sGender) {
this.sGender = sGender;
}
public Student(long sID, String sName, char sGender) {
super();
this.sID = sID;
this.sName = sName;
this.sGender = sGender;
}
public Student(){
}
}
public class Test(){
public static void main(String[] args){
User user = new User();
user.name = "张三";
user.year = 18;
User user2 = new User("李四",16);
Student stu = new Student();
stu.setsID(123);
stu.setsName("李四");
stu.setsGender('男');
Student stu2 = new Student(12345,"张三",'女');
}
}
this关键字
- this用来指代当前类的实例化对象。
- this除了可以在类中访问属性也可以在类中调用方法。
方法重载
1. 应具备的条件
- 同一个类中
- 方法名相同
- 参数列表不同(个数或类型不同)
- 与返回值和访问权限修饰符无关
public class User{
public void Test(){}
public void Test(int num){}
public int Test(int num){ return num; }
public void Test(double num){}
public void Test(int num, int num2)
}
成员变量与局部变量、
- 如果一个变量在方法中声明,则该变量为局部变量。
- 如果一个变量在方法外,在类中声明,则该变量为成员变量。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f946a85aefadfed862ed0ada275be834.png)