1、JAVA面向对象编程(一),对象和类,目标,对象与类的关系 类的抽象和创建 对象的产生和使用,对象概念,世界是由对象组成的 对象具有状态(属性)和行为(方法) 状态:对象的外观特征 行为:对象具有的功能,对象的示例,郭靖,黄蓉,姓名:翁美玲 性别:女 年龄:20 角色:黄蓉 薪水:15000表演: 打狗棒,状态,姓名:黄日华 性别:男 年龄:26 角色:郭靖 薪水:10000表演: 射箭,行为,类,类是对某一类事物的描述,具体操作是将该类事物共同特性和和所具有的行为抽象出来 类是创建对象的模板,是设计对象的蓝图,它描述了将要产生的对象具有哪些特征和行为,人类,手机类,汽车类,类的示例,类和对象
2、的示例,手机设计图 : 类,通过设计图制造的一部手机:对象,类和对象的关系,类就是类型,是属于自定义的一种类型,用该种类型定义的变量就是该类的一个对象 对象具有明确的状态和行为,而类是创建对象的模板,所以类没有具体的状态和行为,只是包含有哪些状态和行为,对这些状态和行为赋不同的值,就会产生不同的对象 在面向对象的编程中,先创建类,然后创建对象,定义类,定义类就是设计该类的共同特性和行为 例:演员类共同特性:姓名,性别,年龄,角色,薪水共同行为:自我介绍,表演 在JAVA中,共同特性被称为类的成员属性,共同行为被称为类的成员方法,定义类,格式: 修饰符 class 类名成员属性(变量);成员方法
3、(函数) 修饰符:public/friendly(缺省的,不要写出), final/abstract类的命名规则和原则: 不能为 Java 中的关键字 类名应该有意义 类名的首字母应该大写,若多个单词,每一单词的首字母都大写,类的创建示例1,public class Actor/成员属性:描述状态,具有哪些特征/成员方法:描述行为,可进行何种操作,成员属性,表明对象的状态,也称为实例变量 定义的格式: 修饰符 数据类型 变量名;修饰符:final,friendly(缺),private,protected,public, static 数据类型:基本数据类型,数组,类,接口 变量名: 不能为J
4、ava的关键字 名词并有意义 首字母小写,其他单词首字母大写 如不赋值,运行时自动初始化(类的成员属性),类的创建示例2,public class Actor/成员属性:描述状态,具有哪些特征String name; /姓名String sex; /性别int age; /年龄String role; /角色int salary; /薪水/成员方法:描述行为,可进行何种操作 ,成员方法,类的成员方法定义了类所具有的行为 定义的格式: 修饰符 返回类型 方法名(参数列表)修饰符:例如public,private 返回类型:基本数据类型,数组,类,接口,void 方法名的命名规范: 动词+名词并有
5、意义 首单词小写,其余单词首字母大写 不能为Java的关键字 参数列表:可以基本数据变量,也可以数组,类,接口变量,成员方法示例 : 演员自我介绍public void showSelf()System.out.println(“姓名:”+this.name+“ 性别:”+this.sex+” 年龄:”+this.age+“ 角色:”+this.role); 演员表演public void showSkill(String skill)System.out.println(this.role+”表演”+skill); ,成员方法,构造方法,它是一个特殊的成员方法。用于创建对象。调用构造方法后系
6、统才为对象分配内存 特征: 必须与类名完全一样 没有返回类型 如省略,Java会自动调用默认的构造方法,即无参的构造方法 分类 默认/隐式构造方法 参数化构造方法,类的创建示例3,public class Actor/*成员属性 :略*/成员方法:描述行为,可进行何种操作/*无参构造方法*/public Actor() 说明:构造方法名和类名相同,用于创建该类的对象时使用,类的创建示例4,public class Actor/*成员属性 :略*/成员方法:描述行为,可进行何种操作/*无参构造方法*/public Actor()/*有参构造方法 */public Actor(String nam
7、e,Sting sex,int age,String role,int salary)/通过传过来的参数值对当前对象的属性赋值this.name = name;this.sex = sex; this.age = age;this.role = role;this.salary = salary; ,类的实例化,将类实例化就是通过调用类的构造方法产生该类的一个具体的对象 Java 语句中,使用new操作符来对类进行实例化。 类名 对象名 = new 构造方法名(); /调用无参构造或者 类名 对象名 = new 构造方法名(参数);/调用有参构造,创建对象示例,public class Tes
8、tActorpublic static void main(String args)/使用无参构造创建对象 Actor actor1 = new Actor();/使用有参构造创建对象Actor actor2 = new Actor(“黄日华”,”男”,26,“郭靖”,10000); ,有参构造和无参构造创建对象的区别,无参构造:内存开辟存储空间,但其值为默认值,有参构造:内存开辟存储空间,其值为指定的实参值,actor1,actor2,对象和内存的关系,栈内存,堆内存,actor1,actor2,对象具有的特性,创建对象后,该对象就具备了访问所创建类的一切属性和方法。访问方法如下: 对象.属
9、性名 对象.方法名() 例:Actor actor1 = new Actor();actor1.name = “黄日华”;actor1.showSelf(),总结,对象的概念 对象具有具体的属性和方法 类的概念 包含有哪些属性和方法 如何设计类 设计属性和方法 如何产生对象 通过类的构造方法产生对象 例:类名 对象名 = new 构造方法 对象所具有的特性 对象可以访问类所有属性和方法,作业,设计演员类并写出测试类(创建对象,访问成员属性和成员方法) 演员类属性:姓名 性别 年龄 角色 薪水 构造方法:无参构造 有参构造 演员类方法: 自我介绍 表演 设计教师类并写出测试类 教师类属性:姓名 性别 年龄 所带课程 构造方法:无参构造 有参构造 教师类方法:自我介绍 讲课,