面向对象
什么是面向对象?
面向对象是针对于面向过程来讲的,把相关的数据和方法组织成一个整体来看待,从更高层次来进行系统建模,更贴近事物的自然运行模式
类和对象
我们将某一些具有相同特征或者相同动作的事物,将他们的相同特征和动作封装成一个类。
例如:
class people{
String name;
double height;
int age;
public void watchTV();
public void playGames();
}
对于上述人类而言name height age是特征;watchTV playGames是动作
这些特征我们称之为属性(成员变量);动作称之为方法(成员函数)
当我们需要一个具体的对象时
People laoWang=new people();
这时我们定义了一个laoWang对象
总结:
类是抽象的概念
对象是具体的某个,真实存在的事物
构造函数
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
注意:
1、构造函数的函数名与类名保持一致,构造函数不写返回值类型不代表无返回值。
2、构造函数可以带哦用构造函数,一般是参数少的调用参数多的,一定注意不可以递归调用构造函数。
class people{
String name;
double height;
int age;
public People(){
People(null;0;0);
};
public People(String hisName){
People(hisName,0,0);
};
public People(hisName,hisHeight,hisAge){
this.name=hisName;
this.height=hisHeight;
this.age=hisAge;
}
public void watchTV();
public void playGames();
}
测试类
class Test{
public static void main(String[] args){
People laoWang=new People(laoWang,175,50);
}
}
注意:this
this是一个指向对象的指针,在构造函数中成员变量前面一般加this,在成员函数中可以不用
getter和setter的创建
先来说一下java对数据的保护
为了保护数据Java中由关键字private表示私有的,为了保证数据的正确性不让用户随意更改或者查看数据,一般我们都会给成员变量前面加private,表示这个数据是私有的,类外无法访问。
同时因为加了private之后类外无法访问成员变量,但是真的需要查看或者修改数据时,我们使用getter和setter方法,getter是读取成员变量,setter是修改成员变量
命名格式为:成员变量是age
public int getAge(){
return age;
}
public void setAge(int hisAge){
this.age=hisAge;
}
注意:我们并不是对每个成员变量都要设置getter和setter,这种命名方式是一种规范,并不一定必须这样命名,如果使用其他名字编译和运行都没问题,但是大家都这样用是一种命名规范,这使你的代码更加规范。