一。面向对象和面向过程的理解
1.1.面向过程:作为参与者,其实就是面向具体的每一个步骤和过程,把每一个步骤和过程完成。
1.2.****面向对象:把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起get set
a.面向对象思想概述:面向对象是基于面向过程的编程思想
b.面向对象思想的特点:可以将复杂的事情简单化;将我们从执行者变成了指挥者.
c.面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情.
d.面向对象特征:封装、继承、多态..
二。类和对象,成员变量,成员方法
2.1类:是一组相关的属性和行为的集合。是一个抽象的概念。
2.2.成员变量:就是事物的属性。
2.3.成员方法:就是事物的行为。
2.5.一个类的标准代码写法:
1.成员变量 2.构造方法(类名相同,并且没有返回值)
:无参构造方法
、带参构造方法(方法名和类名相同) 3.成员方法
:getXxx()、
setXxx()
1.无参构造方法+setXxx() 传值 2.带参构造方法:直接在new对象后面传参
.类和对象的使用:a.创建对象:<1>类名 对象名 = new 类名();或者<2>匿名对象(匿名对象调用成员方法(对象调用方法仅仅一次时))
b.
对象名.成员变量 c.对象名.成员方法
4.匿名对象的两种使用情况:对象调用方法仅仅一次的时候;
作为实际参数传递
5.成员变量与局部变量的区别:
5.1.在类中的位置不同: 成员变量: 类中方法外
局部变量: 方法内或者方法声明上 5.2.在内存中的位置不同:
成员变量: 堆内存 局部变量: 栈内存 5.3.生命周期不同
:
成员变量: 随着对象的存在而存在,随着对象的消失而消失
局部变量: 随着方法的调用而存在,随着方法的调用完毕而消失 5.4.初始化值不同
:
成员变量: 有默认的初始化值 局部变量: 没有默认的初始化值,必须先定义,赋值,才能使用。
封装:
6.1.****定义:属性私有化,提供公有的方法访问私有属性
6.2.****好处:提高数据的访问限制,增强程序可维护性
6.3.****封装代码实现:私有属性(属性被权限修饰符private修饰)和一对get(获取值) set(赋值)方法 6.4.private:权限修饰符(修饰成员属性,成员方法),只能在本类中使用
6.5.this:指自身的引用(当前类)
面试题:谈谈你对面向对象的理解
封装:定义,好处,应用(面向对象的特征)
7.构造方法:(构造方法也是可以重载的)
7.1.作用:完成对象成员的初始化工作
7.2.特点:a.没有返回值类型,连void都没有 b.方法名和类名相同 c.没有返回值
7.3.按照参数分类:a.有参构造(如果一个类中有多个成员属性,如何为每一个成员属性初始化)
b.无参构造(成员属性不多时) 7.4.调用:new对象
7.5.每一个类都有一个默认的无参构造!当显示声明构造方法,那么默认构造被覆盖
8.static(静态)关键字:0604Student
8.1.特点:a.随着类的加载而加载 b.优先于对象存在 c.被类的所有对象共享
(这也是我们判断是否使用静态关键字的条件
)
d.可以通过类名调用
8.2.注意:a.在静态方法中是没有this关键字的 b.静态方法只能访问静态的成员变量和静态的成员方法
8.3.静态方法的调用:类名.方法名();
8.4.静态的内容存在于方法区的静态区
9.代码块:局部代码块
构造代码块
静态代码块 在类中方法外出现,加了static修饰
9.1.执行顺序:静态代码块 -》构造代码块 -》局部代码块
package class05;
public class Test {
public Test(){
System.out.println("无参构造器");
}
{
System.out.println("构造代码块");
}
static{
System.out.println("静态代码块");
}
public static void main(String[] args) {
Test t=new Test();
}
结果:
静态代码块
构造代码块
无参构造器