1面向对象程序设计
面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的操作,对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。
打个比方:炒菜的过程比喻软件开发
面向过程:每一步都设计好:摘菜、洗菜、切菜、炒菜……(打工人)
面向对象:找一个会炒菜的“对象”,让ta完成炒菜工作。(当老板)
对象(Object) :可以对其做事情的一些东西。一个对象有状态、行为和标识三种属性,对象是类的实例化表现。
类(class):一个共享相同结构和行为的对象的集合。
类是模板,对象是根据类的模板制造出来的产品(一个汽车制造的图纸相当于一个类,而根据该图纸制造出来的汽车就是一个对象)
通过类和对象,可以对数据进行抽象和封装(数据抽象:将不同数据类型的集合组成一个整体来描述一个新的事物;封装:放在一起成为一个整体)
例1:创建类:将员工封装为一个类Emp,成为一个自定义的数据类型(将:姓名、性别、年龄、工资 进行封装),并添加一个行为:show。
public class Emp { //建立一个名为:Emp (类和对象的练习)
String name; //成员变量,在类中声明,在类中有效的,通常表示类的静态属性
char sex; //成员变量,在类中声明,在类中有效的,通常表示类的静态属性
int age; //成员变量,在类中声明,在类中有效的,通常表示类的静态属性
double salary; //成员变量,在类中声明,在类中有效的,通常表示类的静态属性
public void show(){ //类的动态属性,本质上是一个方法
System.out.println("我是"+name+","+sex+",今年"+age+"岁了,工资是:"+salary+"元。");
}
public static void main(String[] args) {
Emp p1=new Emp(); //将Emp类实例化,建立一个名为p1的对象
p1.name="张三";
p1.sex='男';
p1.age=30;
p1.salary=5000;
p1.show();
//System.out.println(name); 报错的,因为此时当前方法中没有name的变量,
//如果要打印某个变量的成员变量属性,必须用:对象名.成员变量 的形式
System.out.println(p1.name); //此时打印的是张三
String name="李四"; //声明局部变量:name,和成员变量可以重名
System.out.println(name); //此处打印的是张三还是李四?变量的打印遵循就近原则
}
}
运行结果:
2.局部变量与成员变量
(1)局部变量:在方法中声明,在方法中有效
(2)成员变量:在类中声明,在类中有效
(3)局部变量与成员变量,可以重名,通常使用:this.变量名:表示成员变量。
Java中变量的使用:就近原则(没有其他关键字设定)
一旦成员变量与局部变量重名,那么this关键字不能省去。
3.this关键字
this:调用当前类的对象(谁调用他,就指向谁)
this的用法:
(1)this.成员变量名称:表示访问成员变量。
(2)this.方法名():表示调用某个方法。
(3)this():表示调用构造方法。