package com.oop.demo02;
/**
* @ClassName: Student
* @Author: 南冥有猫不须铭
* @Date: 2021/3/24-16:28
* @Description: 类与对象的创建
*/
//学生类
public class Student { //一个类中只有属性和方法两种东西
//属性:字段
String name; // null(初始化)
int age; // 0(初始化)
//方法
public void study(){
System.out.println(this.name+"在学习");
}
}
//学程序好? 对世界进行更好的建模! --- 宅! 音乐,旅游,出国!
/*当前项目在测试类中的main方法:
public static void main(String[] args) {
//类:抽象的,实例化
//类实例化后会返回一个自己的对象!
//student对象就是一个Student类的具体实例!
Student student = new Student(); // new Student(); + Alt+Enter + Enter
Student xiaoming = new Student(); //xiaoming对象是Student类的一个具体实例
Student xiaohong = new Student(); //xiaohong对象是Student类的一个具体实例
xiaoming.name = "小明"; //给Student类中的name赋值
xiaoming.age = 3; //给Student类中的age赋值
System.out.println(xiaoming.name); //未赋值时是 null,赋值后是 小明
System.out.println(xiaoming.age); //未赋值时是 0,赋值后是 3
xiaohong.name = "小红";
xiaohong.age = 3;
System.out.println(xiaohong.name); // 小红
System.out.println(xiaohong.age); // 3
}
*/
package com.oop.demo02;
/**
* @ClassName: Person
* @Author: 南冥有猫不须铭
* @Date: 2021/3/24-18:07
* @Description: 构造器详解
*/
//java ---> class
public class Person {
//一个类即使什么都不写,它也会存在一个方法(构造方法)
//显示的定义构造器
String name; //name: kuangshen
int agel;
//构造器作用:
//1.使用new关键字,本质是在调用构造器(构造方法)
//2.用来初始化值
//无参构造 (“默认的构造器”)
public Person(){
//this.name = "qinjiqng"; //这里的name指的是上面String的name
}
//有参构造:一旦定义了有参构造,无参构造就必须显示定义(即无参构造一定得有,但其大括号中要空着) (“重载”)
public Person(String name){
this.name = name; //this.name代表对象本身(当前类)的name,等号后面的name代表传递下来的参数
}
//Alt+Insert,选择Constructor可以生成构造器(Insert键在数字键盘的0键上)
//可以选一个属性,或者按住Ctrl选择多个属性,生成有参构造(重载一个或者多个参数)
//也可以选择SelectNone,什么都不选,生成一个无参构造:public Person(){}
public Person(int agel) {
this.agel = agel;
}
public Person(String name, int agel) {
this.name = name;
this.agel = agel;
}
}
/*
public static void main(String[] args) {
//new 实例化了一个对象
Person person = new Person("kuangshen");//通过new关键字去调用构造方法,有参数时,会选择调用有参构造
System.out.println(person.name); //kuangshen
}
构造器:
1.和类名相同
2.没有返回值
作用:
1.new 本质在调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参构造
快捷键:Alt + Insert(Insert在数字0键上) 一键生成构造方法(构造器)
this._ = _ 等号前面代表当前类,后面是参数传进来的值
*/
package com.oop.demo02;
/**
* @ClassName: Application
* @Author: 南冥有猫不须铭
* @Date: 2021/3/24-16:29
* @Description: 测试类(应用类):main方法写在这个类中
*/
//一个项目应该只存在一个main方法
public class Application { //Application:应用
public static void main(String[] args) {
/*[Student.java]的测试:
//类:抽象的,实例化
//类实例化后会返回一个自己的对象!
//student对象就是一个Student类的具体实例!
Student student = new Student(); // new Student(); + Alt+Enter + Enter
Student xiaoming = new Student(); //xiaoming对象是Student类的一个具体实例
Student xiaohong = new Student(); //xiaohong对象是Student类的一个具体实例
xiaoming.name = "小明"; //给Student类中的name赋值
xiaoming.age = 3; //给Student类中的age赋值
System.out.println(xiaoming.name); //未赋值时是 null,赋值后是 小明
System.out.println(xiaoming.age); //未赋值时是 0,赋值后是 3
xiaohong.name = "小红";
xiaohong.age = 3;
System.out.println(xiaohong.name); // 小红
System.out.println(xiaohong.age); // 3
*/
//new 实例化了一个对象
Person person = new Person("kuangshen");//通过new关键字去调用构造方法,有参数时,会选择调用有参构造
System.out.println(person.name); //kuangshen
}
}