Loading... ##导学 稳定性,可扩展性,可重用性 ###类和对象 类是模型,确定对象将会拥有的特征(属性)和行为(方法) 对象是类的实例表现 类是对象的类型 对象是特定类型的数据 属性:对象具有的各种静态特征 -“对象有什么” 方法:对象具有的各种动态行为 -“对象能做什么” ###创建类 ```java package com.imooc.animal; /** * 宠物猫类 * @author HeFeihong * */ public class Cat { //成员属性:昵称、年龄、体重、品种 String name;//昵称 默认值null int month;//年龄 默认值0 double weight;//体重 默认值0.0 String species;//品种 //成员方法:跑动、吃东西 //跑动的方法 public void run() { System.out.println("小猫快跑"); } //吃东西的方法 public void eat() { System.out.println("小猫吃鱼"); } } ``` ###实例化对象 ```java package com.imooc.animal; public class CatTest { public static void main(String[] args) { //对象实例化 Cat one=new Cat(); //测试 one.eat(); one.run(); one.name="花花"; one.month=2; one.weight=1000; one.species="英国短毛猫"; System.out.println("昵称:"+one.name); System.out.println("年龄:"+one.month); System.out.println("体重:"+one.weight); System.out.println("品种:"+one.species); } } ``` ###单一职责原则 单一职责原则:有且只有一个引起功能变化的原因。 如果在一个类当中,承担的功能越多,交融、耦合性就越高,被复用的可能性就越低。 由于耦合性高,一个职责变化的时候,很可能引起其他功能的变化。 在程序设计,将不同功能分装到不同的类中。这就是一种职责单一的表现。 ###new关键字 对象实例化 实例化对象的过程可以分为两部分: -声明对象 Cat one -实例化对象 new Cat(); ```java Cat one=new Cat(); //在栈里开辟了一个内存空间是one 在堆中开辟了一个空间 然后将堆中的这个空间内存地址 放到了one里面 Cat two=one; //将one中的内存地址复制了一份放到了two里面 ``` 这时one和two都对该内存空间有了指向的操作权 首先对one进行赋值,写入堆的内存,当对two进行赋值的时候覆盖了原来one的赋值 ### 编程练习 编写自定义Person类,根据提示以及效果图补全编辑器中代码。 程序运行参考效果图如下: ```java 我是一名学生! 我是一个男孩! 我叫李明,今年10岁了,读小学五年级了。 ``` 任务: 1. 创建Person类 属性:名字(name),年龄(age),年级( grade) 方法:1、无参无返回值的student方法,描述为:我是一名学生! 2、带参数(性别sex)的方法,描述为:我是一个xx孩!(其中,xx为传入参数) 3、无参无返回值的mySelf方法,介绍自己的姓名、年龄、年级(参数参考效果图) 2. 创建测试类 实例化对象,传入参数,调用无参无返回值的student和mySelf方法及带参方法sex ```java public class Person { String name; int age; String grade; //属性:name、age、grade public void student(){ System.out.println("我是一名学生!"); } //创建无参无返回值的student方法,描述为:我是一名学生! public String sex(String sex){ System.out.println("我是一个"+sex+"孩!"); return sex; } //创建带参(性别sex)的sex方法,描述为:我是一个**孩! public void mySelf(){ System.out.println("我叫"+name+",今年"+age+"岁了,读小学"+grade+"年级了。"); } //创建无参无返回值的mySelf方法,分别介绍姓名(name),年龄(age),年级(grade) } ``` ```java public class Test { public static void main(String[] args) { Person one=new Person();//使用new关键字实例化对象 one.name="李明"; one.age=10; one.grade="五"; //传入name、age、grade的参数值 one.student(); one.sex("男"); one.mySelf(); //分别调用student、sex、mySelf方法 } } ``` <hr class="content-copyright" style="margin-top:50px" /><blockquote class="content-copyright" style="font-style:normal"><p class="content-copyright">版权属于:Feihong</p><p class="content-copyright">本文链接:<a class="content-copyright" href="https://www.feihong.me/archives/38.html">https://www.feihong.me/archives/38.html</a></p><p class="content-copyright">转载时须注明出处及本声明</p></blockquote> 最后修改:2019 年 12 月 31 日 11 : 21 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付