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

乐清手机网站设计政务网站集约化建设

乐清手机网站设计,政务网站集约化建设,建设化妆品网站服务,一个不懂技术的人如何做网站接口是抽象类的更进一步. 抽象类中还可以包含非抽象方法, 和字段. 而接口中包含的方法都是抽象方法, 字段只能包含静态常量。 一个简单的接口代码示例 interface IShape { void draw(); } class Cycle implements IShape { Override public void draw() { System.out.println…接口是抽象类的更进一步. 抽象类中还可以包含非抽象方法, 和字段. 而接口中包含的方法都是抽象方法, 字段只能包含静态常量。 一个简单的接口代码示例 interface IShape { void draw(); } class Cycle implements IShape { Override public void draw() { System.out.println(○); } } public class Data { public static void main(String[] args) { IShape shape new Rect(); shape.draw(); } } 定义接口的注意事项 使用 interface 定义一个接口接口中的方法一定是抽象方法, 因此可以省略 abstract接口中的方法一定是 public, 因此可以省略 publicCycle 使用 implements 继承接口. 此时表达的含义不再是 扩展, 而是 实现在调用的时候同样可以创建一个接口的引用, 对应到一个子类的实例.接口不能单独被实例化 定义一个完整的接口是这样的 interface Ishape{         public static final int num 10;         public abstruct void draw(); } 但是严格来说我们在定义一个接口的时候通常会省略  public static final 和 public abstruct 在我们定义接口的时候里面的变量和方法会自动加上。 省略之后的写法 interface Ishape{          int num 10;          void draw(); } 实现多个接口 有的时候我们需要让一个类同时继承自多个父类. 这件事情在有些编程语言通过 多继承 的方式来实现的.然而 Java 中只支持单继承, 一个类只能 extends 一个父类. 但是可以同时实现多个接口, 也能达到多继承类似的效果。 代码示例 interface Ifly{void fly(); } interface Irunning{void running(); } interface Iswimming{void swimming(); } abstract class Animal{public String name;public int age;public Animal(String name,int age){this.name name;this.age age;}abstract public void eat(); } class Dog extends Animal implements Iswimming , Irunning{public Dog(String name,int age){super(name,age);}Overridepublic void running() {System.out.println(this.name 正在跑);}Overridepublic void swimming() {System.out.println(this.name 正在游泳);}Overridepublic void eat() {System.out.println(this.name 正在吃狗粮);} }public class Data{public static void test1(Animal animal){animal.eat();}public static void test2(Ifly ifly){ifly.fly();}public static void test3(Iswimming iswimming){iswimming.swimming();}public static void test4(Irunning irunning){irunning.running();}public static void main(String[] args) {test1(new Dog(小黄 ,20));test3(new Dog(小黄 ,20));test4(new Dog(小黄 ,20));} } 上面的代码展示了 Java 面向对象编程中最常见的用法: 一个类继承一个父类, 同时实现多种接口。 在这个代码中我们定义了三个接口Ifly 、Irunning 、Iswimming 。一个抽象类Animal 。然后定义了一个类来继承这个抽象类并且实现了两个接口。 上述代码运行结果 接口的常见使用案例 Comparable接口 给对象数组排序 代码示例 class Student implements ComparableStudent{private String name;private int score;public Student(String name, int score) {this.name name;this.score score;}Overridepublic String toString() {return [ this.name : this.score ];}Overridepublic int compareTo(Student o) {return this.score - o.score;} } public class Data{public static void main(String[] args) {Student[] student {new Student(小明,87),new Student(小黄,94),new Student(小李,89)};Arrays.sort(student);System.out.println(Arrays.toString(student));} } 在这个代码中我们定义了一个 Student 类 class Student { private String name; private int score; public Student(String name, int score) { this.name name; this.score score; } Override public String toString() { return [ this.name : this.score ]; } } 然后用这个类创建了一个数组 Student[] student {new Student(小明,87),new Student(小黄,94),new Student(小李,89)}; 接着我们给 Student 类实现接口 ComparableStudent 这样我们就可以给该类实例化的成员进行比较大小。 上述代码的运行结果 注意事项: 对于 sort 方法来说, 需要传入的数组的每个对象都是 可比较 的, 需要具备 compareTo 这样的能力. 通过重写 compareTo 方法的方式, 就可以定义比较规则。 Comparator接口 另外一种比较一个类的两个实例的方法 代码示例 class Person implements ComparablePerson{public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return Person{ name name \ , age age };}Overridepublic int compareTo(Person o) {return this.age - o.age;} } class AgeComparator implements ComparatorPerson{Overridepublic int compare(Person o1, Person o2) {return o1.age - o2.age;} } class NameComparator implements ComparatorPerson{Overridepublic int compare(Person o1, Person o2) {return o1.name.compareTo(o2.name);} } public class Data{public static void main(String[] args) {Person p1 new Person(小明,20);Person p2 new Person(小黄,30);System.out.println(p1.compareTo(p2));AgeComparator agecomparator new AgeComparator();System.out.println(agecomparator.compare(p1,p2));NameComparator namecomparator new NameComparator();namecomparator.compare(p1,p2);} } 在这个代码中我们为了进行比较额外创建了一个类来实现 Comparator 接口并且在该类里面重写 compare 方法。 Clonable 接口 浅拷贝 VS 深拷贝 浅拷贝示例 代码示例 class Person implements Cloneable{public int age;public Person(int age) {this.age age;}Overridepublic String toString() {return Person{ age age };}Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } public class Data{public static void main(String[] args) throws CloneNotSupportedException {Person p1 new Person(20);Person p2 (Person)p1.clone();System.out.println(p1);System.out.println(p2);} } 这里我们定义了一个类 Person 并且实现了接口 Cloneable 重写了方法 clone 。在测试类中我们将 p1 里面的内容拷贝到了 p2 里面。 代码运行结果 接着我们再定义一个 Money 类 class Money{public double money 19.9; } 并且在 Person 类中使用这个类 class Person implements Cloneable{public int age;public Money m new Money();public Person(int age) {this.age age;}Overridepublic String toString() {return Person{ age age };}Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } 接着我们再进行拷贝将 p1 里面的内容拷贝到 p2 里面然后我们改变 p2 里面的内容并且将其输出 很快我们就能看出一个问题改变 p2 里面的内容而 p1 里面的内容也跟着改变了呢 接着我们引入深拷贝的理念 深拷贝示例 代码示例 class Money implements Cloneable{public double money 19.9;Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } class Person implements Cloneable{public int age;public Money m new Money();public Person(int age) {this.age age;}Overridepublic String toString() {return Person{ age age };}Overrideprotected Object clone() throws CloneNotSupportedException {Person tmp (Person)super.clone();tmp.m (Money)this.m.clone();return tmp;} } public class Data{public static void main(String[] args) throws CloneNotSupportedException {Person p1 new Person(20);Person p2 (Person)p1.clone();System.out.println(p1.m.money);System.out.println(p2.m.money);p2.m.money 99.9;System.out.println(p1.m.money);System.out.println(p2.m.money);} } 运行结果 我们发现我们刚刚提出的问题被解决了。 这里我们改变了两个地方 1、 将 Money 类也实现 Clonable 接口重写 clone 方法将其具备能被拷贝的能力。 class Money implements Cloneable{public double money 19.9;Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } 2、重写 Person 类里面的 clone 方法。 protected Object clone() throws CloneNotSupportedException {Person tmp (Person)super.clone();tmp.m (Money)this.m.clone();return tmp; } 接口间的继承 接口可以继承一个接口, 达到复用的效果. 使用 extends 关键字。 interface IRunning {void run(); } interface ISwimming {void swim(); } interface IAmphibious extends IRunning, ISwimming {void eat(); } 接口间的继承相当于把多个接口合并在一起。这里我们定义接口 Iamphibious 来继承了接口 IRunning 和接口 ISwimming 。这样该接口就有了另外两个接口里面的抽象方法并且该接口也可以定义另外的抽象方法。 总结 抽象类与接口的区别 核心区别: 抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用(不必重写), 而接口中不能包含普通方法, 子类必须重写所有的抽象方法。
http://www.w-s-a.com/news/785923/

相关文章:

  • 晋江做任务的网站网站如何设置关键词
  • 呼伦贝尔网站建设呼伦贝尔ps网页设计心得体会
  • 字母logo设计网站动画设计方案及内容
  • 怎样做网站建设方案wordpress 附件预览
  • 网站内容编辑wordpress cron原理
  • 户外商品网站制作建筑网络图片
  • 注册了网站怎么建设做网站是学什么专业
  • 济南建设网站哪里好网站色哦优化8888
  • 什么网站做简历最好外贸公司网站大全
  • 衡水网站托管企业二级网站怎么做
  • 丹阳网站建设公司旅游类网站开发开题报告范文
  • 地方门户网站建设苏州网站优化建设
  • 谁用fun域名做网站了网络营销的三种方式
  • 织梦网站上传天津网站建设电话咨询
  • 论坛网站搭建深圳网
  • 天津建立网站营销设计window7用jsp做的网站要什么工具
  • 英文网站wordpress所有图片
  • 我做的网站怎么打开很慢网络营销典型企业
  • 新增备案网站python3网站开发
  • 诊断网站seo现状的方法与通信工程专业做项目的网站
  • 南京 微网站 建站alexa排名查询统计
  • 天津网站建设企业系统wordpress已发布不显示不出来
  • 大连网站前端制作公司局域网视频网站建设
  • 张家界建设局网站电话wordpress网站怎么建
  • 淄博网站建设有实力装修培训机构哪家最好
  • 彩票网站建设seo优化师是什么
  • 怎么做英文网站网站建设基本费用
  • dede网站名称不能保存wordpress运费设置
  • 出口网站制作好一点的网站建设
  • 在小说网站做编辑怎么找韶关市建设局网站