当前位置: 首页 > news >正文

php网站游客试用怎么做教育网站设计欣赏

php网站游客试用怎么做,教育网站设计欣赏,注册公司最少需要多少钱,新手学做免费网站Day1 | Java基础 | 1 面向对象特性 基础补充版Java中的开闭原则面向对象继承实现继承this和super关键字修饰符Object类和转型子父类初始化顺序 多态一个简单应用在构造方法中调用多态方法多态与向下转型 问题回答版面向对象面向对象的三大特性是什么#xff1f;多态特性你是怎… Day1 | Java基础 | 1 面向对象特性 基础补充版Java中的开闭原则面向对象继承实现继承this和super关键字修饰符Object类和转型子父类初始化顺序 多态一个简单应用在构造方法中调用多态方法多态与向下转型 问题回答版面向对象面向对象的三大特性是什么多态特性你是怎么理解什么是向上转型和向下转型Java可以多继承吗为什么只能单继承 抽象类和接口接口和抽象类有什么区别 方法重写和重载方法重写和重载有什么区别 内部类为什么需要内部类什么是匿名内部类静态内部类和非静态内部类有什么区别静态内部类的使用场景是什么 基础补充版 Java中的开闭原则 Open-Closed Principle, OCP软件实体类、模块、函数等应该对扩展开放对修改关闭。 这意味着当需求变化时应该通过添加新的代码扩展来满足而不是修改现有的代码特别是那些已经经过验证并投入使用的代码。 一些实现开闭原则的方法抽象化接口或抽象类、策略模式、装饰器模式、工厂方法/抽象工厂、使用配置而非硬编码、依赖注入、模板方法。具体不展开 SOLID原则 单一职责Single Responsibility类或者对象最好是只有单一职责在程序设计中如果发现某个类承担着多种义务可以考虑进行拆分。开关原则Open-Close, Open for extension, close for modification设计要对扩展开放对修改关闭。换句话说程序设计应保证平滑的扩展性尽量避免因为新增同类功能而修改已有实现这样可以少产出些回归regression问题。里氏替换Liskov Substitution这是面向对象的基本要素之一进行继承关系抽象时凡是可以用父类或者基类的地方都可以用子类替换。接口分离Interface Segregation我们在进行类和接口设计时如果在一个接口里定义了太多方法其子类很可能面临两难就是只有部分方法对它是有意义的这就破坏了程序的内聚性。对于这种情况可以通过拆分成功能单一的多个接口将行为进行解耦。在未来维护中如果某个接口设计有变不会对使用其他接口的子类构成影响。依赖反转Dependency Inversion实体应该依赖于抽象而不是实现。也就是说高层次模块不应该依赖于低层次模块而是应该基于抽象。实践这一原则是保证产品代码之间适当耦合度的法宝。 面向对象 面向对象特性简介 封装利用抽象将数据和基于数据的操作封装在一起使其构成一个不可分割的实体。把一个对象的属性私有化对外提供接口以访问该对象。有4大好处 良好的封装能够减少耦合 类内部的结构可以自由修改 例如将某一属性的数据类型由int改为String只需要稍微改动接口方法内部实现而无需修改使用了该类的代码。 可以对成员进行更精确的控制 隐藏信息实现细节 继承子类继承父类的属性和方法使子类对象实例具有父类的属性和方法或子类从父类继承方法使得子类具有父类相同的方法。分为两类 单继承一个子类只拥有一个父类。 优点在类层次结构上比较清晰缺点结构的丰富度有时不能满足使用需求 多继承一个子类拥有多个直接的父类。 优点子类的丰富度很高缺点容易造成混乱 多态同一个类的对象在不同情况下表现出来的不同行为和状态。即同一个行为具有不同的表现形式 目的提高代码的灵活性和可扩展性使得代码更容易维护和扩展。前提条件有三个 子类继承父类子类重写父类的方法父类引用指向子类的对象 理解 子类可以继承父类的字段和方法子类对象可以直接使用父类中的字段和方法非私有子类可以重写父类的方法从而子类对象调用该方法时表现出不同的行为将子类对象赋给父类类型的引用从而通过父类类型的引用调用子类中重写的方法实现多态 继承 实现继承 extends关键字、implements关键字可以变相实现多继承的效果 // 1. class 子类名 extends 父类名{} // 2. class 子类名 implements 接口1,接口2{override //必须重写接口内的方法public void 方法(){……} }子类抛出的异常必须是父类抛出的异常或父类抛出的异常的子异常。 this和super关键字 // this表示当前对象是指向自己的引用 this.属性 // 调用成员变量区别于局部变量 this.方法() // 调用本类的某个方法 this() // 表示调用本类构造方法 // super表示父类对象是指向父类的引用 super.属性 // 父类对象中的成员变量 super.方法() // 父类对象中定义的方法 super() // 【调用】父类的构造方法父类的构造方法不能被继承子类的构造过程必须调用父类的构造方法。 修饰符 用来定义类、方法或变量。分两类 访问权限修饰符public、protected、private、default等 用来控制访问权限。Java子类重写继承的方法时不可以降低方法的访问权限访问修饰符的作用域不能比父类的小。所以在继承中需要重写的方法不能用private修饰。 非访问修饰符static、final、abstract等 每个都有各自的作用。static 静态/类变量、静态/类方法 可以直接通过类访问不需要创建一个类的对象来访问成员。 构造方法不允许被声明为static静态方法中不存在当前对象因此不能用this和super静态方法能被静态方法重写不能被非静态方法重写 finalfinal变量必须显示指定初始值一旦赋值后不能被重新赋值。父类中的final方法可以被子类继承但不能被重写。final类不能被继承。abstract 抽象类/方法有抽象方法的类必须是抽象类指可以表达概念但无法构造实体。抽象方法指可以表达概念但无法具体实现只能抽取声明没有具体的方法体。 Object类和转型 Object类所有类的根类是最抽象的一个类。java.lang.Object。 所有的类都隐式的继承自Object类。任何类都可以可以使用Object类的方法创建的类也可以和Object类进行向上、向下转型。Java中所有的对象都拥有Object的默认方法。如toString()返回该对象的字符串、equals()比较两个对象是否相等、hashCode()、wait()、notify()、getClass()等该类有一个构造方法并且是无参构造方法。 子父类初始化顺序 在Java继承中初始化先后顺序为 父类中静态成员变量和静态代码块子类中静态成员变量和静态代码块父类中普通成员变量和代码块父类的构造方法子类中普通成员变量和代码块子类的构造方法 静态非静态、父类子类、非构造方法构造方法 理解 静态变量也称类变量可以看成一个全局变量。静态成员变量和静态代码块在类加载的时候就初始化而非静态变量和代码块在对象创建的时候初始化。∴静态非静态。调用构造方法时是对成员变量进行初始化操作。∴普通成员变量和代码块构造方法。 多态 一个简单应用 在运行时根据对象的的类型进行后期绑定能使编译器在只有一个Wanger引用的情况下知道应该调用父类的write方法还是子类的write方法。虽然编译器在编译阶段并不知道对象的类型但是Java的方法调用机制能找到正确的方法体并执行。 多态的一个简单应用多态使程序具有良好的可扩展性能使我们将改变的与未改变的分离开来。例如在子类中添加eat()方法也不会影响write()的调用 //子类继承父类 public class Wangxiaoer extends Wanger {public void write() { // 子类覆盖父类方法System.out.println(记住仇恨表明我们要奋发图强的心智);}public void eat() {System.out.println(我不喜欢读书我就喜欢吃);}public static void main(String[] args) {// 父类引用指向子类对象Wanger[] wangers { new Wanger(), new Wangxiaoer() };for (Wanger wanger : wangers) {// 对象是王二的时候输出勿忘国耻// 对象是王小二的时候输出记住仇恨表明我们要奋发图强的心智wanger.write();}} }class Wanger {public void write() {System.out.println(勿忘国耻);}public void read() {System.out.println(每周读一本好书);} }在构造方法中调用多态方法 在创建子类对象时会先去调用父类的构造方法。而父类构造方法中又调用了被子类覆盖的多态方法。由于父类并不清楚子类对象中的字段值是什么于是把 int 类型的属性暂时初始化为0。最后再调用子类的构造方法。子类构造方法知道age的值是4。 public class Wangxiaosan extends Wangsan {private int age 3;public Wangxiaosan(int age) {this.age age;System.out.println(王小三的年龄 this.age);}public void write() { // 子类覆盖父类方法System.out.println(我小三上幼儿园的年龄是 this.age);}public static void main(String[] args) {new Wangxiaosan(4); // 上幼儿园之前 // 我小三上幼儿园的年龄是0 // 上幼儿园之后 // 王小三的年龄4} }class Wangsan {Wangsan () {System.out.println(上幼儿园之前);write();System.out.println(上幼儿园之后);}public void write() {System.out.println(老子上幼儿园的年龄是3岁半);} }多态与向下转型 向下转型是指将父类引用强转为子类类型。这是不安全的 若父类引用指向的是父类对象类型转换失败。抛出ClassCastException。若父类引用指向的是子类对象向下转型成功。 public class Wangxiaosi extends Wangsi {public void write() {System.out.println(记住仇恨表明我们要奋发图强的心智);}public void eat() {System.out.println(我不喜欢读书我就喜欢吃);}public static void main(String[] args) {Wangsi[] wangsis { new Wangsi(), new Wangxiaosi() };// wangsis[1]能够向下转型((Wangxiaosi) wangsis[1]).write();// wangsis[0]不能向下转型((Wangxiaosi)wangsis[0]).write();} }class Wangsi {public void write() {System.out.println(勿忘国耻);}public void read() {System.out.println(每周读一本好书);} } 另一个实例 问题回答版 面向对象 面向对象的三大特性是什么 封装 是对类的属性和方法进行封装只对外暴露方法而不暴露具体使用细节。∴我们一般设计类成员变量的时候大多设为私有然后通过一些get、set方法去读写。继承 子类继承父类“子承父业”。子类拥有父类除私有外的所有属性和方法自己还能在此基础上拓展自己新的属性和方法。主要目的是复用代码。多态 是同一个行为具有不同表现形式或形态的能力。也就是说一个父类可能有若干子类各子类实现的父类方法多种多样。调用父类方法时父类引用变量指向不同子类实例从而执行不同方法。这样就称这个父类方法是多态的。 多态特性你是怎么理解 多态Polymorphism字面意思“多种状态”。在面向对象语言中指接口的多种不同的实现方式。用白话说就是多个对象调用同一个方法得到不同的结果。 语法格式父类类名 引用名称 new 子类类名() 当是多态时该引用名称只能访问父类中的属性和方法但是访问的时候会优先访问子类重写以后的方法。 满足多态需要三个条件子类必须继承父类、子类必须重写父类的方法、父类引用指向子类对象。 使用多态可以使代码之间的耦合度关联程度降低减少冗余代码的同时提高项目的扩展能力。 Java 多态中有两种类型转换 向上转型自动类型转换子类型赋值给父类型构成多态向下转型强制类型转换父类型赋值给子类型。当使用多态、并访问子类独有的属性或方法时必须进行向下转型。先使用instance of关键字判断该对象合法性即是否属于某一个类或其子类的实例 具体过程 编译阶段编译器首先检查父类中是否有该方法如果没有则编译错误java.lang.ClassCastException。如果有引用名称绑定的是父类中的方法Java多态的静态绑定运行阶段再去调用子类重写后的方法引用名称绑定的是子类中的方法Java多态的动态绑定 参考链接 什么是向上转型和向下转型 向上转型通过子类对象小范围实例化父类对象大范围属于自动转换。Father f new Son()父类引用变量指向子类对象后只能使用父类已声明的方法但方法如果被重写会执行子类的方法如果方法未被重写将执行父类的方法。 向下转型通过父类对象大范围实例化子类对象小范围属于强制转换。Son s (Son)f但父类引用变量实际引用必须是子类对象才能成功转型。子类引用变量指向父类引用变量指向的对象后一个Son()对象就可以调用一些子类特有而父类没有的方法。 案例 Object objectnew Integer(666);//向上转型Integer i(Integer)object;//向下转型Object-Integerobject的实质还是指向IntegerString str(String)object;//错误的向下转型虽然编译器不会报错但是运行会报错Java可以多继承吗为什么只能单继承 不能Java语言在设计时考虑到类层次的复杂性及其实际意义禁止了多继承但可以通过内部类、多层继承或实现接口的方式达到多继承的目的。 参考链接 Java实现多继承效果的方式有三种 内部类可以继承一个与外部无关的类保证了内部类的独立性。在类中分别继承多个内部类以达到多继承的效果。多层继承子类继承父类父类还继承其他类。这样子类就能拥有所有被继承类的属性和方法。实现接口接口可以看作是一组方法。 抽象类和接口 接口和抽象类有什么区别 接口类和抽象类是Java面向对象设计的两个基础机制。 接口是对行为的抽象是抽象方法的集合。利用接口可以达到API定义和实现分离的目的。接口不能实例化不能包含任何非常量成员任何filed都是隐藏着public static final的意义同时没有非静态方法实现也就是说要么是抽象方法要么是静态方法。Java标准库中定义了非常多的接口比如java.util.List。实现接口使用implements关键词。 抽象类是不能实例化的类用abstract关键字修饰class目的主要是代码重用。除了不能实例化形式上和一般的Java类并没有太大区别可以有一个或者多个抽象方法也可以没有抽象方法。抽象类大多用于抽取相关Java类的共用方法实现或者是共同成员变量然后通过继承的方式达到代码复用的目的。Java标准库中比如collection框架很多用用部分就被抽取成为抽象类例如java.util.AbstractList。继承抽象类使用extends关键词。 参考Java标准库中的ArrayList。 public class ArrayListE extends AbstractListEimplements ListE, RandomAccess, Cloneable, java.io.Serializable { //... }方法重写和重载 方法重写和重载有什么区别 方法重写 override子类中出现和父类一模一样的方法包括方法名、参数书列表、返回值类型。外壳不变核心内容重写。方法重载 overload在一个类中定义了多个方法名相同但参数的数量、次序或类型不一致不同的方法。 方法重写是子类与父类的一种多态性表现而方法重载是一个类的多态性表现。 方法重载的好处就是让类以统一的方式处理不同类型的一种手段调用方法时通过传递给他们的不同个数和类型的参数来决定具体使用哪个方法这就是多态性。 内部类 为什么需要内部类什么是匿名内部类 接口和内部类提供了一种将接口与实现分离的更加结构化的方法由于内部类拥有对其外部类的所有成员的访问权因此可以隐藏实现的细节。 每个内部类都能独立地继承自一个接口的实现所以无论外部类是否已经继承了某个接口的实现对于内部类都没有影响。 内部类有效地实现了“多重继承”内部类允许继承多个非接口类型译注类或抽象类。 匿名内部类是局部内部类的一种简要写法可以在不声明的情况下继承其它类并创建对象。 局部内部类是定义在方法里面的内部类。对外来说只有该方法内能调用局部内部类。对内来说局部内部类可以任意访问该方法内的局部变量。 静态内部类和非静态内部类有什么区别 -静态内部类非静态内部类访问权限四种public、protected、default、private三种public、protected、default实例化可以直接通过类名访问不依赖于外部类的实例只能在外部类的实例方法中创建必须依赖于外部类的实例关系只是被包含在外部类中与外部类没有任何联系可以访问外部类的成员和方法可以使用外部类的引用来访问外部类的成员应用场景不需要访问外部类实例的情况下使用例如实现一些独立的功能需要访问外部类实例的情况下使用例如实现一个事件监听器 静态内部类的使用场景是什么 参见上一题。
http://www.hkea.cn/news/14471651/

相关文章:

  • 东莞做网站要多少钱上海人才网官网站首页
  • php网站开发工程师招聘网百度手机端排名
  • 公司网页网站建设 ppt模板下载松江品划企业网站建设
  • 浦东网站建设广州智能建站
  • 哪些网站页面简洁网站建设一般好久到期
  • 开利网络企业网站建设第一品牌免费广告推广网站
  • 做网站寄生虫网站建设定义是什么意思
  • 儿童玩具商城网站建设棋牌网站怎么做
  • 陆家网站建设网站后台文档
  • 微信做网站支付工具时尚大气的网站设计
  • 厦门做网站的公司有哪些wordpress电脑客户端
  • 用html制作购物网站世界500强企业平均寿命
  • 如何网站开发语言做个公司网站
  • 英文网站定制哪家好石家庄建设银行网点
  • 小型网站开发成本编写网站策划书
  • 电子商务网站设计心得体会电商网站建设情况汇报
  • 佛山网站建设运营wordpress主题开发 书
  • 自己做网站除了域名还要买什么交友app自己开发
  • 云南网网站临汾网站建设价格
  • 电信网站备案常州建设网站代理商
  • 哪些网站可以做海报刺猬猫网站维护
  • 校园网站建设意见表填写广州开发区第二小学
  • 建立网站底线平台规划方案怎么写
  • 站长推广网南京尚网网络科技有限公司
  • 新河镇网站制作便宜虚拟主机做网站备份
  • 电子商务网站建设方案目录wordpress七牛汉化主题
  • 大气环保网站模板为什么很多中国人去菲律宾做网站
  • 售后服务方案 网站建设开锁做网站怎么样
  • 外贸网站 中英网站禁ping
  • 大邑县建设局网站简单网上书店网站建设php