前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向对象的Java实现

面向对象的Java实现

作者头像
用户1112962
发布2018-09-19 13:43:24
5680
发布2018-09-19 13:43:24
举报

1.面向对象的Java实现--封装

1-1:封装 a.为什么需要封装(封装可以是数据方便维护、增加实用性、方便扩展等等。通过面向对象的思想,模拟现实生活中的事物。) b.什么是封装(封装就是将属性私有化,提供共有的方法访问私有属性) c.如何实现封装 例如: package s2java.sg.ch01; public class AccpTeacher3{ private String name;//教员姓名 private int age;//年龄 public String getName(){ return name; } public void setName(String MyName){ name=MyName; } public int getAge(){ return age; } public void setAge(int age){ if(age<22){ System.out.println("错误!最小年龄应为22岁!"); this.age=22;//若果不符合年龄要求,则赋予默认值 }else{ this.age=age; } } /* *返回自我介绍的内容 */ public String introduction(){ return "大家好!我是"+name+",我今年"+age+"岁"; } } 1-2:构造方法 a.为什么需要构造方法(使用构造方法可以给属性赋值。而且,实例化一个对象实际上就是去调用这个对象的构造方法。) b.什么是构造方法(构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值。) 构造方法必须满足以下语法规则:方法名与类名相同和没有返回类型。或者会所二名同、无返型。 c.带参数的构造方法(带参数的构造方法可以在构造方法中传递参数。) 在使用带参数的构造方法示例化对象时,传递的值和构造方法的参数应当在个数、次序和类型上互相匹配。 例如:AccpTeacher6 teacher=new AccpTeacher6("李名",23,"本科","咨询师"); 通过调用带参数的构造方法,在创建对象时,一并完成了对象成员的初始化工作,简化了对象初始化的代码。 1-3:方法重载 a.生活中的方法重载 例如: 一个司机可以驾驶不同的车子,虽然驾驶的行为实现各不相同,但是这些 操作都称为驾驶。驾驶这一行为就构成了生活中的方法重载。 b.方法重载的代码示例 例如: public static int max(int a,int b) public static int max(long a,long b) public static int max(float a,foat b) public static int max(double a,double b) 多次调用Math类的max()方法,分别进行不同的取最大值的操作。 例如: public class Test{ public static void main(String[] args){ Math.max(1,2); Math.max(1.0F,2.F); Math.max(1.0,2); } } c.构造方法重载(构造方法重载是方法重载的一个典型特例) 例如: package s2Java.sg.ch02; public class AccpTeacher7{ private String name;//教员姓名 private String school="北京中心";//所在中心 public AccpTeacher7(String name){ this.name=name;//设定教员姓名 } public AccpTeacher7(String name,String school){ this.name=name;//设定教员姓名 this.school=school;//设定教员的所在中心 } public String introduction(){ return "大家好!我是"+school+"的"+name; } } 例如: package s2java.sg.ch01; public class AccpTeacher7Test{ public static void main(String[] args){ AccpTeacher7 teacher1=new AccpTeacher7("李明"); System.out.println(teacher1.introduction()); AccpTeacher7 teacher2=new AccpTeacher7("张兴","天津中心"); System.out.println(teacher2.introduction()); }

2.面向对象的Java实现--继承和多态 2-1:继承 a.生活中的继承(动物<--食草动物与食肉动物。食草动物<--兔子和小白羊,食肉动物<--老虎和狮子。箭头指向的方向为父类!) b.为什么需要继承(使用继承可以有效实现代码复用) c.如何实现继承(在Java语言中,用extends(extends代表扩展的意思)关键字用来表示一个类继承了另一个类) 例如: public class AccpJavaTeacher2 extends AccpTeacher{ } 此例就表明AccpJavaTeacher2类继承了AccpTeacher类 注意:Java中同C#一样不允许有多重继承 解释:方法重写,如果子类中定义的一个方法,名称、返回类型及参数列表与父类的某个方法,名称、返回类型及参数列表完全一致。这就称为方法的重写! d.一切类的祖先--Object(Java类都是直接或间接地继承了java.lang.Object类,Object类是所有类Java类的祖先。) 假如在定义了一个类时,没有使用extends关键字,那么这个类直接继承Object类。 例如:public class MyObject(){} 2-2:多态 a.为什么需要多态(多态是面向对象思想的核心!如此做好处:代码的可扩展性及可维护性提高) b.什么是多态(多态是具有表现多种形态的能力的特征或者用专业语言说:同一个实现接口,使用不同的实例而执行不同的操作。) c.如何实现多态 三个步骤: (1)子类重写父类的方法 (2)把父类类型作为参数类型,该父类及其子类对象作为参数传入 (3)运行时,根据实际创建的对象类型动态决定使用哪个方法 注意:多态性与继承、方法重写密切相关。好处:不仅减少代码量,也能大大提高程序的可扩展性及可维护性。

3.面向对象的Java实现--接口 3-1:Java接口 a.生活中的接口(电脑的USB接口、电源插板、等等) b.什么是Java接口(一个Java接口是一些方法特征的集合,但没有方法的实现。Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为。) c.为什么需要Java接口(增加代码的可维护性和可扩展性,当一个方法不知道如何实现,或者说实现什么样的效果的时候。此时就可以用到接口) 经验:使用继承或者Java接口都可以为我们带来多态的好处。一般情况下,当两个类之间符合"is-a"的关系,并且子类可以复用部分父类的代码, 我们使用继承关系实现。其它情况先选择Java接口。

注意点:Java接口不能被实例化、Java接口中声明的成员自动设置为public,因此Java接口中不能声明私有的成员、 Javajiek中不能出现方法体实现、实现某个Java接口,就必须实现其中定义的所有方法。 3-2:面向接口编程 a.什么是面向接口编程(要正确地使用Java语言进行面向对象的编程,从而提高程序的复用性,增加程序的可维护性、可扩展性,就必须是面向接口的编程) 开发系统时,主体构架使用接口,接口构成系统的骨架。这样就可以通过更换实现接口的类来更换系统的实现。 b.面向接口编程的示例(打印机、风扇等等) 采用面向接口编程的方式实现可分为3步骤: (1)抽象出Java接口 (2)实现Java接口 (3)使用Java接口 3-3:常量 a.为什么需要常量(如:一天24小时,时间是不可以被更改的。项目的版本信息是不可更改的。等等!! 从而使用常量) b.什么是常量(常量是一种标识符,它的值在运行期间恒定不变。常量标识符在程序中只能被引用,不能被重新赋值!) 例如: public final class Math{ //圆周率PI public static final double PI=3.1415926; //将angdeg角度转换成径度 public static double toRadians(double angdeg){ return angdeg/180.0*PI; } } c.常量的优点(使用常量代替信息,可以增强程序的可读性以及可维护性。) d.Java中常量的定义规则(在Java接口中定义常量会自动加上public static final的修饰符,因此,在java接口中定义常量是最佳地点。) e.在Java接口中声明常量 例如: public interface AccpSchoolType{ String ACCP="ACCP加盟中心"; String BENT="BENT直营中心"; } 4.使用异常处理程序错误 4-1:异常 a.生活中的异常(大街上,突然出现一辆宝马,撞上老太太。 桥在下雨的时候突然,断了!等等 异常现象....) b.程序中的异常(在一次课程编程查询上面,提示用户录入数字信息。但是,用户录入字符串,出现异常等等!异常状况....) c.什么是异常(异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。) 4-2:异常处理 a.什么是异常处理(预处理:在异常未发生的时候,预先做出的一些措施!万一程序发生异常了,就处理完了异常过后,程序继续运行!) b.Java中如何进行异常处理 Java的异常处理通过5个关键字来实现的:try、catch(捕获)、finally、throw(抛出)和throws声明异常 例如: package s2Java.sg.ch04; public class Test{ public void method(){ try{ throwException(1); }catch(Exception e){ System.out.println("捕获到异常!"); }finally{ System.out.println("finally中的代码一定会执行!"); } } public void throwException(int i) throws Exception{ if(i==1){ throw new Exception(); } } } 注意:throw抛出异常、throws声明异常 c.try-catch块(使用和C#里面一样!) d.try-catch-finally块(使用和C#里面一样!) e.多重catch块(可以包含多个catch块,排放次序是从特殊到一般,最后一个一般都是Exception类) 注意:Exception异常类是一切子类的父类(一般情况下) f.抛出异常(例如:上一个例子!同理....) g.声明异常(例如:上一个例子!同理....) 4-3:log4j a.使用log4j记录日志信息 b.什么是日志(日志主要用来记录一些重要的操作信息,有价值的信息可以帮助用户提前发现和避开灾难,并找到事件发生的根本原因。) c.如何使用log4j记录日志 详细情况请看P81

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档