Java面向对象(智原博晟).ppt_第1页
Java面向对象(智原博晟).ppt_第2页
Java面向对象(智原博晟).ppt_第3页
Java面向对象(智原博晟).ppt_第4页
Java面向对象(智原博晟).ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java面向对象,本节掌握: 1、了解面向对象的编程思想以及面向对象的特性。 2、类、属性、方法以及return关键词的使用; 3、构造方法、实例化(new关键词的使用) 4、static 、this关键词的使用 5、程序包package;import 关键词的使用; 6、访问修饰符public、private、final、protected 8、方法的重载; 9、继承、super关键词用法; 10、方法的重写(覆盖) 11、抽象类; 12、接口;,面向对象的编程思想以及面向对象的特性: 对象:EveryThing is Object; 万物皆是对象,在程序中,我们可以将类、接口、方法、属性等都认为是对象; 面向对象: 是一种程序设计方法,它以对象作为基本的单元来构建系统,它利用对象将系统的复杂性隐藏在对象里(即封装),从而构建大型的工业级系统和大型系统。 面向对象包括三个过程:面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)。 面向对象的三个特性: 继承、封装、多态 面向对象和面向过程的区别? 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。,类: Java是面向对象的,class可以看做是java中的对象,类中包含:方法(这个对象能做什么)、属性(这个对象具有什么特点) 类:汽车 属性:颜色、品牌、引擎等 方法:启动、行驶、刹车 我们可以将具有不同特点的不同的事物归为不同的类;,类的声明: 访问修饰符 class 类名 例如: public class Person private String name;/类的属性 private String city; private String cardno; private String eyesColor; private String faceColor; public void wakeUp(String name,String time)/起床方法 System.out.println(name+”起床时间:”+time); public void sleep(String name,String time)/睡觉方法 System.out.println(name+”睡觉时间:”+time); ,属性: 类的属性即类中声明的变量,也叫做类变量、成员变量、全局变量,可供多个方法调用; 要掌握:全局变量、局部变量开发中的使用;,方法: (1)定义无返回值方法: public|private|protected|final void 方法名(参数可有可无) (2)定义有返回值方法: public|private|protected|final 返回值类型 方法名(参数可有可无) 操作. return 返回值(跟方法名前面类型必须一致); ,void关键词:用于方法的声明,void表示无返回值,表示此方法执行完毕后,不反回任何结果; return 关键词:用于方法体中,表示该方法执行完毕后,会返回一个指定类型的结果或者数据值; return、break、continue区别: return 跳出整个方法体,表示该方法具有返回值;return后面任何语句不会被执行; break:表示退出当前循环,用于循环或者switch case语句段中; continue:只能用在循环中,表示退出当前循环,继续下面循环;,构造方法: 构造方法必须满足如下几个条件: 1、声明时方法名必须跟当前类名一致; 2、不能使用return即,构造方法无返回值;但也不能使用void关键词; 3、不能被static、final、synchronized、abstract、native修饰; 任何一个类都具有一个隐式无参构造方法; 例如: public class Test private String x,y; public Test()/无参数构造方法 public Test(String x,String y)/有参数的构造方法 this.x=x; this.y=y; ,构造方法主要用于:初始化成员变量; 构造方法执行过程:new实例化时直接执行; 例如: public class Person private String username; private int age; public Person() public Person(String username,int age)/构造方法初始化成员变量 System.out.println(username); System.out.println(age); this.age=age; this.username=username; public static void main(String args) Person person1=new Person(“张三”,23); System.out.println(person1.username); Person person1=new Person(“张三”,23); System.out.println(person2.username); ,实例化(new): 在面向对象中,实例化过程即通过类实现对象的创建(类创建对象的过程); 实例化过程中,会执行相应类的构造方法; 例如:人是一个类,而名字叫“张三”的这个人,他是人类中一个具体实例; 例如:对象是类的引用,类是对象的模板 ;,例如: 实例化一个字符串对象: String str=new String(“admin”); 实例化类对象: public class Person private String cardno;private String name; public Person() public Person(String cardno,String name) =name; this.cardno=cardno; public void sleep() System.out.println(“sleeping”); public static void main(String args) Person person=new Person(“2323123123”,“SMITH”);/实例化Person类对象,此时执行有两个参数的构造方法; person.sleep(); ,static 关键词: 1、static 修饰方法,该方法叫做静态方法(也叫做类方法),可直接通过这个类的类名打点直接调用; 2、静态方法中不能使用this/super关键词,静态方法不能直接调用当前类中的非静态方法(或非静态属性),必须通过new实例化后在调用。 3、static声明的方法和属性,该对象已经被实例化,且只能被实例化一次(单例模式) 4、static修饰的属性,被相同对象的不同实例所共享;,例如: public class Person public static int age; public void run() System.out.println(“RUN”); public static void sleep() System.out.println(“SLEEP”); public static void test() run();/错误,静态方法中不可直接调用非静态方法或者非静态变量; int age=this.age;/错误,当前方法是静态方法,不能使用this关键字 Person person=new Person(); person.run(); sleep();/正确 Person.sleep();/正确 ,例如:,静态初始化块: (开发中一般用于在静态块中加载xml配置文件) 声明在类中: static 这里可以写相关操作,只有类被加载时才执行,且只执行一次; ,程序包:package package就是组织文件的一种方式。 最大的作用就是组织java类文件,可以区分同名的class和interface; 导入import: 用于导入相关的类或者接口; 例如: Scanner类在java.util包中; 使用Scanner类中的相关方法时,需要在当前类中引入这个Scanner类:import java.util.Scanner; 或者import java.util.* ; 如果使用*号,表示这个包中的所有类或者接口将全部被引入;,访问修饰符public、private、final、protected; public:公共的,被修饰的类或接口可以被所有类访问; private:私有的,表示只有当前类才可以访问; protected:受保护的,该类的子类或者同一个包中的其他类都可以访问; 默认的(不写访问修饰符):即不写访问修饰符的,只有同一个包中的类可以访问; final;表示不可继承的,声明变量,表示是常量,必须赋初始值;值不可改变; 声明的方法或者变量都不可以被子类继承;,方法的重载:overloading 表示一个类中可以定义具有同名的方法,这些方法参数类型、个数、顺序可以不同;使用时可通过参数类型、个数,顺序区分这些方法; 构造方法重载: 例如: 普通方法重载: 例如:,继承extends、super关键词用法: Java中支持类与类之间、接口与接口之间的继承,即将父类的东西继承过来;所有类的超类是java.lang.Object类; Java只支持单继承,即一个子类只能有一个父类(超类、基类); 在java中继承有何优点? 1、编码的重用性,也就是子类可以具有父类的非private、非final(类)(finla表示不可继承的)修饰的方法或者属性; 2、使应用程序变得更简单,因为父类涉及到的方法属性,被子类继承过来,子类代码变得更简单;子类由于大部分是继承而来的 很容易修改和扩展已有的实现。 缺点: 打破了封装(隐藏细节),因为基类向子类暴露了实现细节; 白盒重用,因为基类的内部细节通常对子类是可见的; 当父类的实现改变时可能要相应的对子类做出改变; 如果过多使用继承,会使程序变得复杂、不可控,导致类爆炸;,继承中需要注意的地方: 子类A继承父类B, A a=new A(); 或者 B b=new A(); 实例化时,先实例化相关父类,然后实例当前子类对象;,super关键词的用法: super 关键词:只能用在子类中,表示子类调用父类的对象;super不可以使用在static修饰的方法中;super在子类的构造方法中使用时,需要写在程序的第一行; this和super区别: this:表示当前类对象,用于区分当前类中全局变量与方法参数同名情况;不能用在static方法中; super:只能用在子类中,表示父类对象,super在子类的构造方法中使用时,需要写在程序的第一行;不能用在static方法中;,方法的重写(覆盖)Override: 方法的重写发生在继承中,子类继承父类, 子类方法重写父类方法满足如下条件: 方法名相同、方法参数个数和类型完全相同并且返回值类型也要相同(jdk1.5以上,返回类型可以是被重写方法返回类型的子类); 重点:重写和重载区别?面试题; 方法重写的目的: 主要是为了拓展父类相关方法的操作,而不改变父类中该方法内容。,重写equals方法和toString()方法: 重写toString()方法:,重写equals方法:,抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。,抽象类的定义: abstract 关键词修饰的类是抽象类。 例如:定义一个抽象类,其中包含一个抽象方法:,抽象类特点: 1、抽象类通过abstract声明class,抽象类中可以声明abstract方法和非abstract方法; 2、抽象类不能被实例化(new),抽象类使用时必须通过子类继承,并且子类必须重写抽象类中的所有抽象方法。 3、抽象类中的属性,可以不赋初始值;,例如:,上面实例中Test3 中可以添加一个方法:例如:,测试方法:,Java中的接口Interface: Java中由于是单继承的,为了弥补这个缺点,则产生了Int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论