重新学习JAVA面向对象(一)
语言的演变
第一代语言:机器语言。
第二代语言:汇编语言。
第三代语言:高级语言。
分为面向过程和面向对象语言。
面向过程:C语言,Fortran语言,PASCAL语言,ADA语言。
面向对象:C++,JAVA,C#。
第四代语言:SQL。
类和对象
类是对象的抽象。
对象是具体的事物。
先有具体的对象,然后抽象出各个对象之间像的部分,归纳出类,通过类再认识其他对象。
对象的特征:
属性:对象具有的各种特征,每个对象的每个属性都拥有特定值。方法是对象执行的操作。
对象:用来描述客观事物的一个实体,由一组属性和方法构成。
电脑包含五部分:输入设备、控制器、运算器、存储器、输出设备。
类:
具有相同属性和方法的一组对象的集合。
类是抽象的概念,类中定义了对象的静态和动态属性。
类是对象的类型,不同于基本类型,类是有方法的。
JDK提供了很多类供人们使用,人们也可以定义自己的类。
类的属性:
属性或者成员变量,用于定义该类或者该类对象包含的数据。
属性作用范围是整个类体。
在定义成员变量时可进行初始化,若不初始化则使用默认值。
默认值(数值0/0.0, char:\u0000, boolean:false, 所有引用类型:null)
类的方法:
面向对象中,整个程序的基本单位是类,方法是从属于对象的,Java中方法参数的传递是值传递。
一个Java文件中可以定义N个class,但只能有一个public class,并且public class的类名与文件名保持一致。
局部变量和成员变量
区别:
声明位置不同:成员变量声明在类内方法外。局部变量声明在方法内。
作用范围不同:成员变量作用于当前类的所有方法。局部变量只作用于当前方法。(不同方法中即便有同名的局部变量也互不影响,不建议这么用。)
内存中存放位置不同:成员变量变量值存在堆中。基本类型在虚拟机栈中。引用类型在堆中。
默认值不同:成员变量有默认值,局部变量无默认值。
引用类型:
Java中除基本类型之外的变量类型都称之为引用类型。
Java的对象和数组是通过引用类型对其操作的。
内存分析:
栈(stack):存放局部变量,先进后出,自上而下存储。方法执行完毕,自动释放空间。
堆(heap):存放new出来的对象,需要垃圾回收器来回收。system.gc()。
方法区:存放类的信息(代码)、static变量,字符串常量。