1.类与对象的关系(类型务虚、对象务实)
对象(行为履行者): =
new 类型()类型(特征塑造者)
事物的特征受到类型的约束
2.类与对象的创建
- 类型
- 属性列表(非必须)
- 语法:访问修饰符 属性类型 属性名 [= 初始值]
- 方法列表(非必须)
- 语法:访问修饰符 [静态修饰符] 返回值类型||void 方法名(参数列表){方法体}
- this:指向属性
- 属性列表(非必须)
- 对象
- 语法:类型 对象名 = new 类型()
packageA6.entity;publicclassStudent{// 属性列表:姓名、年龄、体重publicStringname;publicintage;publicdoubleweight;// 方法列表// - 语法:访问修饰符 [静态修饰符] 返回值类型||void 方法名(参数列表){方法体}publicvoidstudy(){System.out.println("各位同学早上好!");System.out.println("我的名字是:"+this.name);System.out.println("我的年龄是:"+this.age);System.out.println("我的体重是:"+this.weight);System.out.println("我正在学习Java!");}}*entity(储存创建的类型)+ test(储存测试类)
packageA6.test;importA6.entity.Student;publicclassA6_test0{publicstaticvoidmain(String[]args){// 1.1创建学生类对象Students1=newStudent();// 1.2调用学生对象的属性s1.name="张三";s1.age=18;s1.weight=60.5;// 1.3调用学生对象的方法s1.study();Students2=newStudent();s2.name="李四";s2.age=19;s2.weight=65.0;s2.study();}}- 案例练习
packageA6.entity;publicclassTeacher{publicStringname;publicStringsubject;publicStringclassName;publicintteachAge;publicvoidteach(){System.out.println(this.name);System.out.println("专业方向:"+this.subject);System.out.println("教授课程:"+this.className);System.out.println("教学年龄:"+this.teachAge);}}packageA6.test;importA6.entity.Teacher;publicclassA6_test1{publicstaticvoidmain(String[]args){// 1.1创建教师类对象Teachert1=newTeacher();// 1.2调用教师对象的属性t1.name="王老师";t1.subject="计算机";t1.className="使用Java语言理解程序逻辑";t1.teachAge=5;// 1.3调用教师对象的方法t1.teach();}}---------------------------------------------------------------//运行结果王老师 专业方向:计算机 教授课程:使用Java语言理解程序逻辑 教学年龄:53.方法(普通方法、构造方法)
普通方法
概念:普通方法的创建只能基于类;调用只能基于方法
语法:访问修饰符 [静态修饰符] 返回值类型||void 方法名(参数列表){方法体}
根据返回值的选择和参数列表的选择可以为普通方法归纳出4大类型
- 有参有返
- 有参无返
- 无参有返
- 无参无返
*有返回值时 必须有
return关键字 return后面必须出现值 返回的值类型必须与声明的一致(要有东西接收才会打出return后面的值)
类的方法重载现象
当一个类中出现方法名相同形式参数列表不同与访问修饰符返回值无关时触发方法重载
//1.创建无参数无返回普通方法(指令簇)publicvoidfun1(){for(inti=1;i<=10;i++){System.out.println(i);}}//2.创建有参数无返回普通方法publicvoidfun2(Stringname){for(inti=1;i<=10;i++){System.out.println(i+" "+name);}}//类的方法重载现象publicvoidfun2(Stringname,intage){for(inti=1;i<=10;i++){System.out.println((i+" "+age)+name);}}//3.创建无参数有返回普通方法publicStringfun3(){System.out.println("hahahaha");return"Hello";}//4.创建有参数有返回值普通方法publicStringfun4(Strings){System.out.println("hahahaha");return"Hello"+s;}- 构造方法(功能:创建对象)
- 创建一个自定义类型时,系统会默认创建其隐藏的无参构造方法
- 通过调用Teacher类的无参构造方法,创建了具体的Teacher类对象
- 当人为创建了构造方法后,默认创建的那个隐藏的无参构造方法将失效(想两个都有效只需要明文写个
public Dog(){}就可以
- 创建一个自定义类型时,系统会默认创建其隐藏的无参构造方法
//创建一个自定义类型时,系统会默认创建其隐藏的无参构造方法publicclassTeacher{publicStringname;publicStringsubject;publicStringclassName;publicintteachAge;publicvoidteach(){System.out.println(this.name);System.out.println("专业方向:"+this.subject);System.out.println("教授课程:"+this.className);System.out.println("教学年龄:"+this.teachAge);}}publicclassA6_test1{publicstaticvoidmain(String[]args){//通过调用Teacher类的无参构造方法,创建了具体的Teacher类对象(t1)Teachert1=newTeacher();t1.name="王老师";t1.subject="计算机";t1.className="使用Java语言理解程序逻辑";t1.teachAge=5;t1.teach();}}packageA6.entity;publicclassDog{publicStringname;publicinthealth;publicintlove;publicStringtype;publicDog(Stringname,inthealth,intlove,Stringtype){this.name=name;this.health=health;this.love=love;this.type=type;}publicvoidshow(){System.out.println(this.name);System.out.println("健康值:"+this.health);System.out.println("爱值:"+this.love);System.out.println("类型:"+this.type);}}System.out.println(this.name);System.out.println("健康值:"+this.health);System.out.println("爱值:"+this.love);System.out.println("类型:"+this.type);}}