Java的面向对象基础(类、对象、方法和构造函数)
面向对象的基本概念面向对象的设计思想什么是类什么是对象类的定义设计面向对象的例子步骤一:设计动物这个类步骤二:创建具体的动物步骤三:在类中添加方法方法返回类型类的构造函数基本内容构造函数例子面向对象的基本概念
面向对象的设计思想
确定该问题由哪些事物组成,先用类模拟出该事物。通过类间接的解决问题,自上而下设计(将大问题分为一个一个的小问题),从问题的一部分着手,一点一点地构建出整个程序。用类来作为划分程序的基本单位。对于需求不明确、变动较大、规模很大的问题非常合适。什么是类
把一类事物的静态属性和动态可以执行的操作组合在一起所得的这个概念就是类。类是抽象的,用来模拟一类事物,是一个概念。eg:天使一旦被定义,类的概念就永远存在了。什么是对象
对象是类的一个个体。具体的、实实在在存在的事物。生命周期是短暂的,会生成和消灭。类的定义
class Person{int age;void shout(){System.out.println("I am "+age);}}
解析:
age是类Person的属性,也叫做类数据成员、字段、域。shout是方法,也叫类的成员变量。shout方法可以直接访问同一个类中的age变量。
设计面向对象的例子
步骤一:设计动物这个类
世界上有非常多的动物,比如:狗,猫,鱼,鸟。这些动物都有一些共同点,比如:它们都有名字,体重,移动速度。所以我们设计一个类(Animal),来代表动物这样一种事物。
类: 动物(Animal)
状态: 名字,体重,速度
public class Animal {String name; //名字float weight; //体重int speed; //速度}
步骤二:创建具体的动物
类就像一个模板,根据模板,可以创建一个个的具体的动物。一个个具体的动物,就叫一个个的对象 。new Animal() 就是在java中创建一个对象。
public class Animal {String name; //名字float weight; //体重int speed; //速度public static void main(String[] args) {Animal dog=new Animal();dog.name = "狗";dog.weight = 14.3f;dog.speed = 80;Animal cat=new Animal();cat.name = "猫";cat.weight = 4.8f;cat.speed = 50;} }
步骤三:在类中添加方法
每个动物都有自己的叫声,所以为Animal这个类,设计一个方法: voice。
public class Animal {String name; //名字float weight; //体重int speed; //速度void voice(){System.out.println("叫声");}}
方法返回类型
有的方法是有返回类型的比如方法:float getWeight(){return weight;}
这个方法是用来获取每个动物的体重的,返回类型是float
有的方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值,比如方法 “voice”.
void voice(){System.out.println("叫声");}
类的构造函数
基本内容
特点: 函数名与类名相同不能有返回值可以有参数,也可以没有参数一个类中可以有多个构造函数 说明:声明一个对象,系统首先为该对象分配内存,然后立即自动调用该对象的构造函数。注意: 任何一个类对象被生成时一定会调用该类的构造函数。无论一个类有多少个构造函数,生成一个类对象时只会调用其中的某一构造函数。
构造函数例子
public class Person {//类体声明private String name; //私有变量声明,带有默认初值private String gender; private int age;//构造函数public Person(String name, String gender, int age){this.name=name;this.gender=gender;this.age=age;}//显示函数public String display(){return "Person[name=" + name + ", gender=" +gender+ ", age=" + age + "]";}public static void main(String[] args) {Person person = new Person("Joanna", "female", 19); //创建Person类的对象personSystem.out.println(person.display()); //调用显示函数}}
输出结果: