跟着老师学Java类:终于摸到面向对象的门了
今天上课,老师没直接讲代码,而是先在黑板上画了个表格:左边写“手机”,右边列着“品牌、型号、电量”和“打电话、发消息、拍照”。“这些属性和功能凑在一起,就是Java里的‘类’。”老师一句话,把我之前对“类”模糊的想象,一下子拉到了眼前。
刚开始老师讲“类是模板,对象是实例”时,我还有点懵。直到他在IDE里敲出Student
类的代码——成员变量写name
和age
,成员方法写study()
和introduce()
,然后用Student ming = new Student();
创建出“小明”这个对象,再调用ming.introduce()
,控制台弹出“我叫小明,今年18岁”时,我突然懂了:类就像工厂里的图纸,规定了每个“产品”(对象)该有什么零件(成员变量)和能做什么事(成员方法);而new
出来的对象,就是照着图纸造好的、能直接用的具体东西。之前学方法时总觉得代码是“散的”,现在用类把变量和方法打包,突然有了“给代码找着家”的感觉。
后来老师讲到“封装”,举了个特别实在的例子。他先让我们把Student
的age
用private
修饰,结果我们在主方法里直接写ming.age = -5
时,IDE直接报错了。“这就是封装的作用——不让外部随便改数据。”接着老师教我们写setAge(int a)
方法,在里面加了判断:如果a
小于0,就提示“年龄不能为负数”,否则才给age
赋值。那一刻我突然明白,之前觉得“封装就是加private”是错的,它更像给数据加了一道“防护门”,既保护数据不被乱改,又能通过规定的方式(getter/setter)安全访问——就像我们不会直接拆手机电池来充电,而是用充电器接口一样,规范又安全。
课堂练习时,老师让我们写一个Book
类,要求有“书名、作者”属性,还有“显示信息”和“借阅”方法。我一开始犯了个傻:没new
对象,直接用Book.showInfo()
调用成员方法,结果报错了。老师过来指出:“静态方法才用类名调,成员方法得靠对象——你没造出书,怎么显示书的信息呀?”我赶紧加上Book javaBook = new Book("Java基础", "张三");
,再调用javaBook.showInfo()
,终于成功了。这个小错误让我记牢了:类里的成员方法和之前学的静态方法不一样,它得“附着”在具体的对象上才能用。
下课前老师总结:“Java是面向对象语言,而类就是面向对象的‘基石’——以后学继承、多态,都得从类开始。”现在看着自己写的Student
和Book
类代码,突然觉得“面向对象”不再是课本上的抽象概念,而是能用代码描述世界的工具:用Student
描述学生,用Book
描述书籍,每个类都像一个小小的“实体”,有自己的属性和行为。
晚上打算再练几个类,比如Phone
类(属性:品牌、内存;方法:打电话、玩游戏),把今天学的封装和对象创建再巩固一遍。原来跟着老师一步步拆解,看似复杂的“类”,也能学得这么扎实~