导学

稳定性,可扩展性,可重用性

类和对象

类是模型,确定对象将会拥有的特征(属性)和行为(方法)

对象是类的实例表现

类是对象的类型

对象是特定类型的数据

属性:对象具有的各种静态特征

​ -“对象有什么”

方法:对象具有的各种动态行为

​ -“对象能做什么”

创建类

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("小猫吃鱼");
}
}

实例化对象

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();

Cat one=new Cat();
//在栈里开辟了一个内存空间是one 在堆中开辟了一个空间 然后将堆中的这个空间内存地址 放到了one里面
Cat two=one;
//将one中的内存地址复制了一份放到了two里面

这时one和two都对该内存空间有了指向的操作权
首先对one进行赋值,写入堆的内存,当对two进行赋值的时候覆盖了原来one的赋值

编程练习

编写自定义Person类,根据提示以及效果图补全编辑器中代码。

程序运行参考效果图如下:

我是一名学生!
我是一个男孩!
我叫李明,今年10岁了,读小学五年级了。

任务:

  1. 创建Person类

​ 属性:名字(name),年龄(age),年级( grade)

​ 方法:1、无参无返回值的student方法,描述为:我是一名学生!

​ 2、带参数(性别sex)的方法,描述为:我是一个xx孩!(其中,xx为传入参数)

​ 3、无参无返回值的mySelf方法,介绍自己的姓名、年龄、年级(参数参考效果图)

  1. 创建测试类

​ 实例化对象,传入参数,调用无参无返回值的student和mySelf方法及带参方法sex

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)

}
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方法
}

}
最后修改:2019 年 12 月 31 日 11 : 21 PM
如果觉得我的文章对你有用,请随意赞赏