一、面向过程与面向对象
区别:
过程:事物比较简单,可以用线性的思维去解决
对象:事物比较复杂,使用简单的线性思维无法解决
共同点:
面向过程和面向对象都是解决实际问题的一种思维方式,
两者相辅相成,并不是对立的;
解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理。
面向对象:
模块化处理问题
二、类与对象
什么是类;
什么是对象;
怎么创建一个类;
怎么创建一个对象;
怎么使用对象;
类可以生成对象,类是对象的抽象。
1:静态的描述声明为类的成员变量,成员变量描述对象有什么
2:动态的描述声明为成员方法,成员方法描述对象可以做什么
3:成员方法可以直接使用成员变量
定义类:
属性;
方法;
构造方法;
其他,代码块 静态代码块 内部类
属性用于定义该类或该类对象包含的数据或者说静态属性。
属性作用范围是整个类体。
创建对象:
-类名 对象名 = new 类名();
调用类的属性和方法:
-对象名.成员变量
-对象名.成员方法
对象:是具体事物;
类:是对对象的抽象
先有具体的对象,然后抽象各个对象之间像的部分,归纳出类
通过类再认识其他对象
三、局部变量和成员变量
区别:
声明位置不同:类中 方法中
作用范围不用:当前类的方法 当前方法
//不同的方法中即使有同名的局部变量,没有关系,互不影响,建议相同。
内存存放的位置:栈内存中 堆内存中
成员变量有默认值;局部变量没有默认值
局部变量可以和成员变量重名
局部变量和成员变量重名的时候,局部变量的优先级更高
在局部优先使用到局部变量,要使用成员变量需要加前缀:this.
四、内存分析
栈:
存放:基本数据类型局部变量
先进后出,自下而上存储
方法执行完毕,自动释放空间
堆:
存放new出来的对象;
需要垃圾回收器来回收
方法区:
存放:类的信息、static变量、字符串常量
五、方法调用形参和实参
定义方法的参数是形式参数
调用方法的参数是实在参数
调用方法是要求参数个数相同,类型兼容