概述:java编程语言是纯粹的面向对象思想的语言。
程序开发两个主流的方法:
(1)结构化程序设计,也叫面向过程程序设计,结构化程序设计主张以功能/步骤来进行软件设计。
如在解决问题时,主要是思考的是解决问题的步骤思路。
结构化程序设计是以函数为程序单元 ,从一个函数开始,
调用其他普通函数,进行一些数据处理,一直调用下去。
设计思想:自顶而下,逐步精分,模块化
此种方式的编程语言有C,Basic,Pascal
(2)面向对象程序设计。
它使用类,对象,继承,封装,消息等概念来进行程序设计。
主要从现实世界的客观事物(即对象)出发来进行开发软件系统,
尽可能的运用人的自然思维方法 ,从客观事物来思考问题,
认识问题。 从这些事物的本质特点,来抽象出系统所需要的类,
作为程序的基本单元。
此类方法的编程语言:C++,java,C#, Ruby
类:
类是面向对象编程的基本单元,类含有一类事物的共同特征,类可以产生多 个对象,这些对象构
成了程序中所需要的数据。类是一类事物的抽象体现,而这些事物都有一些状态数据。即Field
(成员变量,有些资料称之字段,也有些资料称之为属性,java有property关键字 是属性的。)
类除了封装了一些事物的状态数据外,还提供了操作这些状态数据的
方法(Method),实现逻辑。
面向对象和面向过程:
面向对象要比面向过程的粒度要大,相对来说容易,简单。
面向过程要比面向对象的性能要高,因为面向对象要进行对象的实例化,
比较吃内存,吃性能。
类的定义: 成员变量(状态数据)+方法(行为)定义
抽象数据类型:用一堆不同类型的状态数据来描述的一种新的事物。
用状态数据(成员变量)总结一类事物的共同特征,
用方法总结一类事物的共同行为。
格式语法:
修饰词 class 类名{
type field1;
type field2;
.....
修饰词 返回值类型 method1(形参){}
修饰词 返回值类型 method2(形参){}
.....
}
定义一个类型:Person
成员变量(状态数据-共同特征):
name,gender,age,birth,idcard,isMarry
方法(行为)
eat()
sleep()
work()
sport()
对象: 类的实例化,即类中的个体
如何创建对象:使用关键字new
类名 引用变量 = new 类名();
引用变量:简称引用,存储的是对象的地址信息
成员变量的调用:引用.成员变量名
方法的调用:引用.方法名(有参传参)
类与对象的关系:类是对象的模板,对象是类的实例化
内存管理机制:
jvm将其管理的内存分成三大主要区域:方法区,堆,栈
方法区:当程序运行时,将所需要的class文件(类的信息)加载到此区间
堆: 用于存储引用类型所产生的对象,如果对象有成员变量,会给成员变量分配空间
栈:方法内的变量(局部变量)是在栈中开辟的
基本类型的变量与引用类型的变量:
值传递:
基本数据类型的变量里存储的是基本类型的数据,
int a = 5;
int b = a;//将a里的5复制了一份,传递给了b
址传递:
引用类型的变量里存储的是对象的地址信息
Car c = new Car();
Car d = c;//将c里的地址信息复制了一份,传递给了d
空指针异常:
java.lang.NullPointerException
在程序运行时,可能会出现此异常,出现的原因:
Car c = new Car();
System.out.println(c.color);//0
Car c = null;
System.out.println(c.color);//就会出现空指针异常
null:是引用类型的默认值