一.概念
- 编程思想:解决一个需求的思考方式,落实到代码上,完成需求.这种思考方式称为编程思想.
- 面向过程:解决一个需求时,把大问题拆解为小步骤,把小步骤拆解…,可以完成这个需求为止,自顶向下,逐步求精.
- 面向对象:解决一个需求时,找到解决需求的对象,对象之间彼此关联,彼此配合,完成这个需求
- 对象:一切客观存在的事物,万物皆对象.
- 属性:对象有什么,特征
- 方法:对象能干什么,能力
二.对象与类
-
对象:内存中的一块数据,描述对象的特征及行为,类的实例
-
类:一组对象的抽象概念,对象的模板
一个类—>无数的对象 一个对象---->一个类
-
图例:
三.类的组成
-
语法:
//类是对象的模板 class 类名{}
-
属性:对象的特征,又称成员变量,实例变量,全局变量
//位置:类的内部,方法的外部 数据类型 属性名;
-
全局变量(属性)和局部变量的区别
局部变量 属性 定义位置 定义在方法的内部 类的内部,方法的外部 作用范围 从定义行开始到所在代码块结束 本类可用 有无默认值 必须先赋值后使用 属性存在默认值(和数组相同) 命名冲突 相同作用范围内不允许重名 属性和属性不能重名;属性和局部变量可以重名;属性和局部变量重名,优先使用局部变量 -
属性初始值:
class 类型{ 数据类型 属性名=属性值;//说明对象创建的模板默认此属性值相同 }
-
-
方法:对象的能力,又称成员方法,实例方法
//位置:类的内部,其他方法的外部 访问修饰符 返回值类型 方法名(参数表){ //方法的实现 } public void study(){}
-
方法重载(overload):方法名相同,参数表不同(参数个数,参数类型,参数类型的排列顺序),和返回值访问修饰符无关
**注:**出现方法重载,根据方法名和参数的类型共同确定调用的方法
如果实参类型没有匹配的形参,实参类型进行就近向上匹配(byte–>short–>int–>long–>float–>double)
不能出现调用不明确的情况
-
-
构造方法:特殊的方法–创建对象
-
作用:创建对象
-
语法:
访问修饰符 类名(参数){} public Student(){} //注: //构造方法没有返回值类型 //如果没有手动添加构造方法,系统默认提供公开无参的构造方法 //构造方法无法手动 . 调用,创建对象时由系统自动调用
-
通常使用有参的构造方法给属性赋值
属性赋值:默认值/初始值/构造赋值/对象名.属性名=值
-
四.对象的创建
-
语法
类名 对象名/变量名/引用名=new 类名(参数);//创建一个对象
-
调用属性
//赋值 对象名.属性名=属性值; //取值 对象名.属性名
-
调用方法
对象名.方法名(实参);
五.创建对象的过程
- 对象(一块空间),调用构造方法
- 1.开辟空间,给属性赋予默认值
- [2.给属性赋予初始值]
- 3.使用构造方法给属性赋值
六.对象的内存结构
//java.lang.NullPointerException:空指针异常
//产生原因:对null调用属性或者方法
Teacher t=new Teacher();
System.out.println(t);//地址
System.out.println(t.name);//地址
t.teach();
Teacher t1=null;
//System.out.println(t1.name);
//t1.teach();
七.this
this:当前对象
-
this.属性名/this.方法名(参数):当前对象的成员属性和成员方法
this.属性名:区分局部变量和成员变量 //局部变量和属性重名,优先使用局部变量,如果需要使用属性,在属性前加this.
-
this(参数):调用本类中其他的构造方法
this()只能存在构造方法中,且只能是构造方法的第一行有效语句