面向对象设计的过程就是抽象的过程,一般分为三步:
(1)发现类,类定义了 对象将会用用的特征(属性)和行为(方法)。
(2)发现类的属性,对象所拥有的静态特征
(3)发现类的方法,对象执行的操作称为类的方法
举个栗子:
猫类有会喵喵叫,长得可爱,长着爪子,会抓老鼠,爱吃鱼,各种各样的毛色,不同长度的毛发等特征。那么我们可以把拥有这类特征的动物都归为猫类。
那么猫类的特征:毛色,毛长,年龄,名字,性别。
猫类的行为:叫,吃饭,跑,跳等。
如何用Java思想来创建一个类呢?
一、定义类
语法格式:
[访问修饰符] class 类名{
//属性
//方法
}
注:
·访问修饰符如public、private是可选的,具体含义后面会讲到
·class是声明类的关键字
·按照命名规范,类名首字母大写
public class Cat{
//属性
//方法
}
二、属性
猫类的静态特征:毛色,毛长,年龄,名字,性别。
语法格式:
[访问修饰符] 数据类型 属性名;
注:
·访问修饰符可选
·除了访问修饰符外,其他的语法格式和声明变量类似
例如:
public class Cat{
//毛色,毛长,年龄,名字,性别
public String color;//毛色
public String length;//毛长:长/短
public int age;//年龄
public String name;//名字
public String sex;//性别
}
三、方法
猫类的动态行为:叫,吃饭,跑,跳等。
语法格式:
[访问修饰符] 返回类型 方法名称(参数列表){
//属性
//方法
}
注:
·访问修饰符可选
·返回值类型可以是void,表示该方法无返回值。若有返回值,在方法体中必须使用return关键字返回对应类型的结果。
·是否传参根据具体业务逻辑来定,需要传递多个参数时,参数之间使用英文半角格式的逗号进行分隔。
示例:
public class Cat{
//叫
public void say(){
System.out.print("我是一只小猫,我叫"+name+",我是一只小"+sex+"猫,今年"+age+"岁了");
}
//吃 带参方法
public void eat(int num){
System.out.print("小猫吃了"+num+"条鱼");
}
//跑 带有返回值
public String run(double length){
return "小猫跑了"+length+"米";
}
//跳
public void jump(){
System.out.print("小猫可以跳很高");
}
}
示例:
在“猫”类中定义方法,描述小猫的特征和行为。
public class Cat{
public String color;//毛色
public String length;//毛长:长/短
public int age;//年龄
public String name;//名字
public String sex;//性别
//叫
public void say(){
System.out.print("我是一只小猫,我叫"+name+",我是一只小"+sex+"猫,今年"+age+"岁了");
}
//吃 带参方法
public void eat(int num){
System.out.print("小猫吃了"+num+"条鱼");
}
//跑 带有返回值
public String run(double length){
return "小猫跑了"+length+"米";
}
//跳
public void jump(){
System.out.print("小猫可以跳很高");
}
}
四、类的实例化(创建和使用对象)
类是一类事物的集合和抽象,代表这类事物共有的属性和行为。一个对象称为类的一个实例,是类一次实例化的结果。例如我家的小猫“蜜蜜”是猫类的一个具体对象。
创建对象的语法格式:
(1)创建对象
类名 对象名 = new 类名();
注:
·new是关键字。
·左边的类名为对象的数据类型。
·右边的类名()称为类的构造方法。
示例:创建猫类的具体对象。
Cat mimi = new Cat();
(2)使用对象
使用对象的语法格式:
对象名.属性名;//引用对象的属性(我们把一类事物的静态特征统称为它的属性)
对象名.方法名();//引用对象的方法
示例:创建一个小猫的对象,并为其属性赋值,调用其方法
public class Test1 {
public static void main(String[] args) {
Cat mimi = new Cat();
mimi.age = 3;
mimi.name = "蜜蜜";
mimi.sex = "公";
mimi.color = "橘";
mimi.length = "长毛";
mimi.say();
}
}
输出结果: