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

怎么使用电脑是做网站网站开发需求分析包括哪些方面

怎么使用电脑是做网站,网站开发需求分析包括哪些方面,自助建站系统平台,iis架设网站教程目录 一.多态: 1.方法的多态: 2.对象的多态: 3.多态的注意事项与细节: 5.多态的应用: 二.Java的动态绑定机制: 三.多态应用: 1.多态数组: 2.多态参数: 三.Object类&#xf…

目录

一.多态:

1.方法的多态:

2.对象的多态:

3.多态的注意事项与细节:

5.多态的应用:

二.Java的动态绑定机制:

三.多态应用:

1.多态数组:

2.多态参数:

三.Object类:

1.equals方法:

2.hashcode方法:

3.toString方法:

4.finalize方法:


一.多态:

方法或对象具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承基础上的。

1.方法的多态:

方法的重写和重载就体现多态。

2.对象的多态:

  1. 一个对象的编译类型和运行类型可以不一致
  2. 编译类型在定义对象时,就确定了,不能改变
  3. 运行类型是可以变化的
  4. 编译类型看定义 = 号的左边,运行类型看 = 号的右边。

例:Animal animal = new Dog()  【animal编译类型是Animal,运行类型是Dog】

3.多态的注意事项与细节:

(1)多态的前提是两个对象存在继承关系

(2)向上转型:父类的引用指向子类的对象,可以调用父类中的所有成员,但不能调用子类特有成员。

(3)方法与属性调用时按照从子类开始查找

例:Animal animal = new Dog()  【animal编译类型是Animal,运行类型是Dog】

class Dog extends Animal 【aniaml可以调用父类中所有成员(访问权限内),不能调用子类的特有成员。】

(4)向下转型:

  1. 语法:子类类型 引用名 = (子类类型)父类引用
  2. 只能强转父类的引用,不能强转父类的对象
  3. 要求父类的应用必须指向当前目标类型的对象
  4. 当向下转型后,就可以调用子类类型中所有的成员

例:Animal animal = new Dog() ; Dog dog= (Dog) animal ;【编译类型是Dog运行类型也是Dog,可以调用Dog中的所有方法】

(5)属性的值看编译类型,编译类型看定义 = 号的左边。

(6)instanceOf比较操作符,用于判断对象的运行类型是否为某类型或则某类型的子类型,返回值为true或false。

注:方法找运行类型,属性找编译类型,对象找地址。

5.多态的应用:

二.Java的动态绑定机制:

1.当调用对象方法时,该方法会和该对象的内存地址/运行类型绑定

2.当调用对象属性时,没有动态绑定机制,哪里声明,使用哪里(调用方法中出现的属性)

三.多态应用:

1.多态数组:

定义:数组的定义类型为父类类型,里面保存的实际元素为子类类型。

public class Ployarray {public static void main(String[] args) {Person [] persons = new Person[5];persons[0] = new Person("jack",20);persons[1] = new Student("jeek",20,100);persons[2] = new Student("simth",28,80);persons[3] = new Teacher("scout",30,12000);persons[4] = new Teacher("king",50,10000);for (int i = 0; i < persons.length; i++) {//动态绑定机制,方法看运行机制System.out.println(persons[i].Say());}}

2.多态参数:

定义:方法定义的形参类型为父类类型,实参类型为子类类型。

public class Teat {public static void main(String[] args) {Woker tom = new Woker("ton",2500);Manager milan = new Manager("milan",5000,20000);Teat t = new Teat();t.showEmpSAnnual(tom);t.showEmpSAnnual(milan);t.testwork(tom);t.testwork(milan);}public void showEmpSAnnual(Employee e) {//编译类型为Employee,运行类型为传入对象的类//Employee e = new Woker();System.out.println(e.getAnnual());}public void testwork(Employee e){if(e instanceof Woker){((Woker) e).work();}else if(e instanceof Manager){((Manager) e).manage();}}
}

三.Object类:

1.equals方法:

(1)equals与= = 的区别:

  •  = = 既可以判断基本类型,又可以判断引用类型
  • 如果 = =判断基本类型,判断的值是否相等。
  • 如果 = =判断引用类型,判断的是地址是否相等。

equals是Object类中的方法,只能判断引用类型,默认判断地址相等,子类往往重写该方法,用于判断内容是否相等。

(2)equals的重写:

public class EqualsExercise {public static void main(String[] args) {Person person1= new Person("jack",10,'男');Person person2= new Person("makw",10,'男');System.out.println(person1.equals(person2));}}
class Person {private String name;private int age;private char gender;public boolean equals(Object obj){if(this == obj){return true;}if(obj instanceof Person){Person p = (Person)obj;return this.name.equals(p.name) && this.age== p.age && this.gender == p.gender;}return false;}public Person(String name,int age,char gender){this.name = name;this.age = age;this.gender = gender;}

2.hashcode方法:

  1. hashcode方法提高具有哈希结构的容器的效率
  2. 两个引用如果指向同一个对象,则哈希值是一样的。
  3. 哈希值是主要根据地址号,不能将哈希值等价于地址。

3.toString方法:

默认返回:全类名+@+哈希值的十六进制,子类往往重写toString方法,用于返回对象的属性信息。

当输出一个对象时,toString重写方法会被默认的调用。

public class toStringExercise {public static void main(String[] args) {Monster monster = new Monster("小妖怪","巡山的",1000);System.out.println(monster.toString());System.out.println(monster);}
}
class Monster{private String name;private String job;private double sal;public Monster(String name, String job, double sal) {this.name = name;this.job = job;this.sal = sal;}
//重写toString方法@Overridepublic String toString() {return "Monster{" +"name='" + name + '\'' +", job='" + job + '\'' +", sal=" + sal +'}';}
}

4.finalize方法:

  • 当对象被回收时,系统自动调用该对象的finalize方法,子类可以重写该方法做一些释放资源的操作。
  • 当某个对象没有任何引用,就会使用垃圾回收机制来销毁该对象,在销毁该对象钱,会调用finalize方法。
public class Finaliaze_ {public static void main(String[] args) {Car bmw = new Car("宝马");bmw = null;System.gc();System.out.println("程序退出");}
}
class Car {private String name;public Car(String name) {this.name = name;}@Overrideprotected void finalize() throws Throwable {System.out.println("我们销毁汽车"+name);System.out.println("我们释放了某些资源");}
}

http://www.yayakq.cn/news/467058/

相关文章:

  • 个人网站可以如果做淘宝客wordpress源代码
  • wordpress建站准备做网站什么域名好
  • 九江做网站哪家公司好工作号做文案素材的网站
  • 研究生院 网站 建设石碣网站仿做
  • 大姚网站建设留号码的广告网站
  • 网站链接数怎么做泰州泛亚信息做网站怎么样
  • 公司网站建设价位html论坛代码大全
  • 研发网站要多长时间合肥专业做淘宝网站推广
  • 嘉兴营销型网站网站如何实现临时聊天
  • 新开传奇网站网站源码后台
  • 呼市浩特网站建设外包公司设计网站的关键点
  • 营销型网站的布局网络公司管理系统
  • 中国建设劳动学会网站win10系统优化
  • 网站建设一条龙大连企业免费建站
  • 制作闹钟网站用手机制作游戏的软件
  • 哈尔滨营销网站制作电脑版网页游戏
  • python做网站服务器百度收录入口提交
  • 四川科隆建设有限公司网站东莞城乡建设规划官网
  • 网站标题具体怎样优化安装完整wordpress主题
  • 东莞seo建站怎么投放网站建设规划设计报告
  • 猪八戒网网站设计自己做个网站
  • 山东华邦建设集团网站沈阳网站开发公司电话
  • 坪地网站建设怎么样湖南产品网络营销推荐咨询
  • 网站运营方案模板加强网站建设说明报告范文
  • 卓越亚马逊网站建设目的网站建设与管理专业学什么
  • 短网址还原网站百度ocpc怎么优化
  • 东莞市做网站网页图片提取工具
  • wordpress群站wordpress压缩包
  • 网站怎么弄模板深圳网站建设最专
  • 如何做网站百科介休市网站建设公司