面向过程和面向对象都是语言设计思想(宏观)。
面向过程的程序设计思想 (简称POP)
面向过程(具体步骤)
分析完成事件需要的步骤,并逐一实现,直至完成事情。 (是早期的编程语言设计思想,结构简单)
例如:c语言就是一个典型的面向过程的语言。
后面的程序设计愈加复杂,单纯面向过程难以胜任设计需求。
现有的大半语言都是面向对象:
如:C++,C#,java,python等。
面向对象的程序设计思想(OOP)
面向对象时,从宏观上分析程序的功能,然后对功能进行分类,把不同的功能存在不同的类中,是一种宏观的设计。
但具体实现中,面向对象仍离不开面向过程。
关注的焦点是类:在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,用类来表示。
代码结构:以类为组织单位。每种事物都具有自己的属性和行为/功能。
不要把面向过程和面向对象对立起来;他们是相辅相成的,面向对象离不开面向过程。
面向对象具体实现:
类和对象时面向对象的核心概念
类:具有相同特征的事物的抽象概念,是抽象的,概念上的定义。
对象:实际存在的该事物的每个个体,是具体的,可使用的,也称为实例。
类的结构:
变量:(名词)事物的属性
方法:事物的行为(动词)
构建方法:给对象初始化
块:一段没有名称的代码块;
1.发现类:
类的声明格式为:
[访问权限修饰符] [修饰符] class Car{
}
访问修饰符有两种public,无
修饰符:final,abstract
关键字class用来定义一个类
类名首字母大写,见名知意,驼峰表示
2.发现类的共有属性(成员变量)
public class Car{
//成员变量定义
}
成员变量是定义在类中,方法体之外的变量
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化
3.发现类的共有行为(成员方法)
方法声明格式为:
[访问权限修饰符] [修饰符]/ void start(){
System.out.println("");
[return 返回值;]
}
对象:是类的一个实例,是以类为模板在内存中创建的实际存在的实例。
同一类的每个对象有不同存储空间。
对象是一个具体的事物,具有该类事物的属性和功能。
对象的创建和使用:
通过new创建对象,然后调用{类名()}的构建方法初始化对象,
用{类名}作为类型声明的一个变量 (xx)。
然后通过“ = ”将创建对象的地址赋值给变量。
类和对象
类是这一类事物的一个抽象的概念总称,是一个模型,而对象是这个模型下所构建的一个个具体存在的实例;比方:人这个大的概念,和人中的具体的某个人(王五),万事万物皆为对象。
所以创建对象的过程也叫实例化对象.
现实生活中先有对象后有类,而编程时先设计类后创建对象.
对象与引用
java中除去8个基本类型外,其他的变量类型称为为引用类型。
其中可以通过 Zero ls =new Zero();看出
Zero()以Zero类为模板,在堆空间里创建一个Zero类对象。
用Zero作为类型声明的一个Zero类型引用变量ls。
然后通过“ = ”使对象引用指向刚创建的那个Zero对象。
public class TextZe {
public static void main(String[] args) {
Zero ls =new Zero();
ls.name ="李四";
ls.yuansu ="呆";
ls.jiage=80;
ls.potlown();
ls.work("采矿");
System.out.println("===============================");
Zero zsl = new Zero();
zsl.name ="王五";
zsl.yuansu ="乐";
zsl.jiage=90;
zsl.potlown();
zsl.eat("面条");
System.out.println("---------------------------------------------");
Zero dxr =new Zero("宋七",20,"女");
dxr.pot();
System.out.println("---------------------------------------------");
Zero wb =new Zero();//创建了一个实体,并创建了引用变量
wb.name="吴八";
Zero wj=wb;
wb.Name();
wj.Name();
}
}
public class Zero {
//属性
String name;
String yuansu;
float jiage;
//成员方法
//方法的重载:指一个类中具有相同的名字,但参数不同的多个方法,如下的eat和work。
/*
参数不同:数量,类型,顺序不同。
*/
public void eat(){
System.out.println("吃");
}
public void eat(String food){
System.out.println(name+"吃"+food); }
public void work(){
System.out.println("工作。");
}
public void work(String gongzuo){
System.out.println(name+gongzuo);
}
public void potlown(){
System.out.println("姓名:"+name+","+"属性:"+yuansu+","+"价格:"+jiage+"元/天。");
}
/*--------------------------------------------------------------------------------*/
//成员变量
String ming;
int age;
String xingbie;
//方法
//构造方法名与类名相同,且没有返回值,且不需要使用void修饰
//构建方法---->为创建的对象的成员变量进行赋值
//当方法中没有构建方法时,程序默认定义一个无参的构建方法,而当程序定义一个有参的构建方法时,默认的无参构建方法失效,需要重新定义一个无参的构建方法让其显示出来。
//如下:
//无参构建方法
public Zero(){
/*完整:
ming=null;
age =0;
xingbie =null;*/ }
//有参构建方法
public Zero(String m,int a,String x){
ming = m;
age = a;
xingbie = x;
}
//成员方法
public void pot(){
System.out.println("名字:"+ming+","+"年龄:"+age+","+"性别:"+xingbie+"。");
}
}