大二学生,初始面向对象上,刚开始感觉颇有难度,不过经过反复思考和写代码后,难度也就相应降下来了。个人认为学java很重要一点就是要针对每个模块的知识做思维导图,这样各个知识点的联系就一清二楚了,这样写代码的时候才能写得更快。初学java,做的思维导图还有待完善。如果有的地方有错误,欢迎各位大佬批评指正!不胜感激!
下面就用实际代码对每个知识点进行详细解释
一、先定义了一个学生类,定义了id、姓名、语文成绩、数学成绩、年份、教室编号(用static变量修饰,适用于全体成员),之后定义了一个homework方法,一个chinese方法,一个math方法,分别打印“做作业”、“语文成绩”、“数学成绩”的语句。
二、再分别定义了一个setYear和getYear方法,前者得到年份,后者返回年份。setYear方法无返回值,定义了一个整形变量,参数为year。接下来最重要的是this应用,是为了避免形参名与变量名冲突,导致编译器无法识别,this引用的是调用成员方法的对象,会在之后的main方法中通过new关键字实例化对象。getYear方法返回值是一个整形变量,无参数,返回年份。
三、 接下来的重头戏是方法重载和构造方法。方法重载遵循两个原则:(1)方法名字相同(2)方法的参数类别(参数名称、参数类型)不同。构造方法同样也遵循两个原则:(1)方法名与类名相同,这里的方法名Student与类名相同,也没有返回值。(2)不能有任何的返回值,void也不行。构造方法分为无参和有参,有参方法多与this引用一起使用。
构造方法有什么用呢?在java和面向对象中,成员变量不用初始化,局部变量要初始化,但变量最好还是初始化。构造方法是一种特殊的方法,用于创建对象的初始化,通过在构造方法中为成员变量赋初始值,可以确保对象在创建后处于一个合理的初始状态。
方法重载可以增强代码的可读性和提高代码的灵活性。
四、 最后是main方法,用于最终实现上述所有方法。
首先通过new关键字实例化创建了两个Student对象stu1和stu2,实例化语法句式:类名 对象名 = new 类名(),对象stu1在实例化时没有赋值,对象stu2在实例化时分别为年龄赋值为2,为姓名赋值为李四,语文赋值为110,数学赋值为120。对象stu1在下面通过(对象.属性)的语法规则分别为各变量进行赋值,赋值后再通过(对象.方法)的语法规则分别调用homework方法、chinese方法、math方法。
stu1先调用setYear方法且赋值为2024,再通过对象调用getYear方法且打印,从而最终输出年份2024。
static静态成员变量不依赖对象,适用于全体成员,可以直接通过类名访问,在定义成员变量时用static修饰,默认每个对象都具有这个属性,因为它不依赖对象,只与类相关,等级高。
五、 最终输出结果:最终有两种信息输出方式(1、通过调用set方法、调用且打印get方法,2、通过有参构造方法 + new关键字实例化直接赋值)
标签:变量,构造方法,对象,面向对象,类名,方法,初始,赋值 From: https://blog.csdn.net/gdswsj/article/details/143100978