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

深圳专业的网站制作公司软件开发工具

深圳专业的网站制作公司,软件开发工具,山东省工程建设交易信息网站,做的网站是怎么被收录java面向对象:面向对象的三大特征 面向对象的三大特征1.封装get和set规范属性的合法化 2.继承类继承子类调用父类方法super的用法通过super调用父类public的属性super注意点super对比this 方法重写静态方法中奇怪的现象非静态方法 3.多态多态存在的条件多态中成员访…

java面向对象:面向对象的三大特征

  • 面向对象的三大特征
    • 1.封装
      • get和set
      • 规范属性的合法化
    • 2.继承
      • 类继承
      • 子类调用父类方法
      • super的用法
        • 通过super调用父类public的属性
        • super注意点
        • super对比this
      • 方法重写
        • 静态方法中奇怪的现象
        • 非静态方法
    • 3.多态
      • 多态存在的条件
      • 多态中成员访问特点
      • 多态的好处和弊端
      • 多态中的转型
        • 向上转型
        • 向下转型

面向对象的三大特征

1.封装

我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
封装(数据的隐藏)通常应用于禁止直接访问一个对象中数据的实际表示,而应用通过操作接口来访问,这称为信息隐藏。

记住这句话就够了:属性私有,get/set

get和set

public class Student {//private属性私有private String name;private int age;private char sex;//get获取这个数据public String getName() {return name;}public int getAge() {return age;}//set 给这个数据设置值public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}//idea快捷键:alt+insert
}public class StudentDemo {public static void main(String[] args) {Student s1 = new Student();s1.setName("刘德华");   //使用set设置值为刘德华s1.setAge(50);System.out.println(s1.getName()+"今年"+s1.getAge()+"岁了"); //刘德华今年50岁了}
}

规范属性的合法化

如果这里age我们输入999

public class StudentDemo {public static void main(String[] args) {Student s1 = new Student();s1.setName("刘德华");   //使用set设置值为刘德华s1.setAge(999);System.out.println(s1.getName()+"今年"+s1.getAge()+"岁了"); //刘德华今年999岁了}
}

很明显没有人能活到999岁,所以这里我们必须做一些限制。

public class Student {//private属性私有private String name;private int age;private char sex;//get获取这个数据public String getName() {return name;}public int getAge() {return age;}//set 给这个数据设置值public void setName(String name) {this.name = name;}public void setAge(int age) {//输入的年龄超过范围则显示0if (age > 120 || age < 0 ){this.age = 0;} else {this.age = age;}}//快捷键:alt+insert
}

所以从某种意义上说,它可以规范属性的合法化。

2.继承

继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
extands的意思是“扩展”。子类是父类的扩展。
注意:JAVA中类只有单继承,没有多继承!

  • 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
  • 继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。
  • 子类继承父类,使用关键字extends来表示。
  • 子类和父类之间,从意义上讲应该具有"is a"的关系

类继承

修饰符extends

//人
public class Person {
}//学生也是人,所以他是Person子类
public class Student extends Person {
}//老师也是人,所以他是Person子类
public class Teacher extends Person {
}

子类调用父类方法

//人
public class Person {public void say(){System.out.println("说话");}
}//学生
public class Student extends Person {
}public class test {public static void main(String[] args) {Student student = new Student();student.say();  //说话}
}//查询继承关系快捷键:Ctrl+H

子类集成父类,就会拥有父类的全部方法,之所以这样是因为我们所用的修饰符是public,同样的修饰符还有下面几个:

修饰符意思常用程度
public公开的重点最常用
protected受保护的
default默认的
private私有的重点最常用

在java中所有的类默认直接或间接的集成了object类。

super的用法

这里的super要和this一起说,我们可以对比。

通过super调用父类public的属性
//父类,人
public class Person {private String name ="kuangshen";
}//人的子类,学生类
public class Student extends Person {private String name = "qingjiang";public void test(String name){System.out.println(name);   //对象传入的nameSystem.out.println(this.name); //当前类的name,结果为”qingjiang”System.out.println(super.name);   //父类中的属性,结果为”kuangshen”}}

当父类的属性或者方法是私有时super也是无法调用的。

super注意点
  • super调用父类的构造方法,必须在构造方法的第一行;

  • super必须只能出现在子类的方法或者构造方法中;

  • super和this不能同时调用构造方法,因为他们都需要放在第一行,所以不能同时!

super对比this
对比代表的对象不同前提构造方法
this本身调用者是对象没有继承也可以使用本类的构造
super代表父类对象的应用只能在继承条件才可以使用父类的构造

方法重写

静态方法中奇怪的现象
//父类
public class B {public static void test(){System.out.println("B=>test()");}
}//子类
public class A extends B {public static void test(){System.out.println("A=>test()");}
}//演示
public class ceshi {public static void main(String[] args) {A a = new A();  a.test();		//A=>test()B b = new A();b.test();       //B=>test(),我new的是A为何会结果是B=>test()???//而且可以看到,方法的调用跟等号右边没什么关系,因为右边都是new A(),但是却跟左边数据的定义有很大的关系;//父类的引用指向了子类,因为这和多态有关,我们先这么简单的理解。}
}

感觉方法的调用跟等号右边没什么关系,因为右边都是new A(),但是却跟左边数据的定义有很大的关系。

非静态方法

现在我们把上面A和B类中的static去掉

//父类
public class B {public void test(){System.out.println("B=>test()");}
}//子类
public class A extends B {@Override   //重写修饰符public void test(){System.out.println("重写方法");}
}//演示
public class ceshi {public static void main(String[] args) {A a = new A();  a.test();		//A=>test()B b = new A();  //子类重写了父类的方法b.test();       //重写方法}
}

注意:方法重写只跟非静态方法有关,和静态方法没有任何关系

3.多态

即同一方法可以根据发送对象的不同而采用多种不同的行为方式,一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多

举例:一只猫

  • 我们可以说猫是猫 cat=new 猫();
  • 我们也可以说猫是动物animal=new 猫();
  • 这里的猫在不同时刻表现出了不同的形态,这就是多态。

多态存在的条件

  • 有继承关系
  • 子类重写父类方法
  • 父类引用指向子类对象

注意:多态是方法的多态,属性没有多态性。

多态中成员访问特点

成员变量:编译看左边,执行看左边
成员方法:编译看左边,执行看右边

为什么成员变量和成员方法的访问不一样呢?因为成员方法有重写,而成员变量没有


package com.pokes001;public class Person {public void run() {System.out.println("run");}
}package com.pokes001;public class Student extends Person {@Overridepublic void run(){System.out.println("run");}public void eat(){System.out.println("eat");}
}package com.pokes001;public class Application {public static void main(String[] args) {//一个对象的实际类型是确定的//new Student();//new Person();//父类的引用指向子类Student s1 = new Student();  //Student能调用自己的方法和继承父类的方法Person s2 = new Student();  //父类型,可以指向子类,但是不能调用子类独有的方法Object s3 = new Student();  //同上s1.eat(); //子类重写了父类的方法,执行子类方法//s2.eat();这个是直接报错,因为父类无法调用子类独有的方法}

多态的好处和弊端

多态的好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作

多态的弊端:不能使用子类的特有功能

多态中的转型

向上转型

父类为Animal,有一个eat()方法,打印:动物吃东西

子类为Cat,有两个方法,其中一个是重写了父类的eat()方法,打印:猫吃鱼。另一个方法为playGame方法,打印:猫捉迷藏

public class AnimaDemo{public static void main(String[] args){//向上转型,等号左边是动物类Animal,右边是猫对象Animal a = new Cat(); a.eat();  //猫吃鱼,调用了子类重写父类的方法//可以直接调用父类Animal的eat方法和子类重写父类的eat方法,但是不能调用子类独有的方法playGame,否则会报错。 }
}

可以直接调用父类Animal的eat方法和子类重写父类的eat方法,但是不能调用子类独有的方法playGame,否则会报错。

向下转型

根据上面的例子我们是无法调用playGame方法,但是有时候必须要调用,这个时候我们需要将Animal a = new Cat()向下转型

public class AnimaDemo{public static void main(String[] args){Animal a = new Cat(); //向下转型Cat c = (Cat)a;   //可以这样理解:将动物类强制转为猫类,并赋值给cc.eat();	//猫吃鱼	c.playGame() //猫捉迷藏}
}

文章转载自:
http://preoption.xqwq.cn
http://lysis.xqwq.cn
http://pieria.xqwq.cn
http://metacarpal.xqwq.cn
http://monsoon.xqwq.cn
http://covered.xqwq.cn
http://cattiness.xqwq.cn
http://connector.xqwq.cn
http://fetching.xqwq.cn
http://dree.xqwq.cn
http://heteromorphosis.xqwq.cn
http://sacrificially.xqwq.cn
http://lychnis.xqwq.cn
http://sinaitic.xqwq.cn
http://singlehanded.xqwq.cn
http://elegist.xqwq.cn
http://emphatic.xqwq.cn
http://etna.xqwq.cn
http://delegable.xqwq.cn
http://kneecap.xqwq.cn
http://multicast.xqwq.cn
http://vraic.xqwq.cn
http://soldanella.xqwq.cn
http://outsang.xqwq.cn
http://ultrared.xqwq.cn
http://sewing.xqwq.cn
http://talky.xqwq.cn
http://uninjured.xqwq.cn
http://rowover.xqwq.cn
http://sequentially.xqwq.cn
http://couture.xqwq.cn
http://unsicker.xqwq.cn
http://nativity.xqwq.cn
http://graceful.xqwq.cn
http://teiid.xqwq.cn
http://versification.xqwq.cn
http://smudginess.xqwq.cn
http://wilt.xqwq.cn
http://castanets.xqwq.cn
http://featherwit.xqwq.cn
http://speaking.xqwq.cn
http://frondeur.xqwq.cn
http://revisability.xqwq.cn
http://vfd.xqwq.cn
http://deltoideus.xqwq.cn
http://cyanurate.xqwq.cn
http://spacefarer.xqwq.cn
http://absorberman.xqwq.cn
http://commanderia.xqwq.cn
http://disdainful.xqwq.cn
http://fibrosis.xqwq.cn
http://nitrosobenzene.xqwq.cn
http://cellularized.xqwq.cn
http://malaria.xqwq.cn
http://satyarahi.xqwq.cn
http://inhalant.xqwq.cn
http://atlanticist.xqwq.cn
http://gritty.xqwq.cn
http://unctuously.xqwq.cn
http://earthman.xqwq.cn
http://hewn.xqwq.cn
http://rerebrace.xqwq.cn
http://zaikai.xqwq.cn
http://tailboard.xqwq.cn
http://askari.xqwq.cn
http://bosnia.xqwq.cn
http://polygram.xqwq.cn
http://lass.xqwq.cn
http://reek.xqwq.cn
http://moderate.xqwq.cn
http://headfast.xqwq.cn
http://reticently.xqwq.cn
http://draught.xqwq.cn
http://schmoe.xqwq.cn
http://toes.xqwq.cn
http://glory.xqwq.cn
http://plenipotent.xqwq.cn
http://archaise.xqwq.cn
http://trend.xqwq.cn
http://radiate.xqwq.cn
http://defectively.xqwq.cn
http://rhinovirus.xqwq.cn
http://melodramatic.xqwq.cn
http://chechako.xqwq.cn
http://itt.xqwq.cn
http://carabin.xqwq.cn
http://pirouette.xqwq.cn
http://draughtboard.xqwq.cn
http://bluestem.xqwq.cn
http://toss.xqwq.cn
http://floodwater.xqwq.cn
http://parenchyma.xqwq.cn
http://extraessential.xqwq.cn
http://links.xqwq.cn
http://six.xqwq.cn
http://dulcite.xqwq.cn
http://trichome.xqwq.cn
http://hypothecate.xqwq.cn
http://hearthside.xqwq.cn
http://allotransplant.xqwq.cn
http://www.hrbkazy.com/news/69299.html

相关文章:

  • 工作做ppt课件的网站职业培训机构资质
  • 网站的百度推广怎么做体验营销
  • 宏润建设集团有限公司网站站长工具 seo综合查询
  • 网站首页线框图怎么做顶尖文案网站
  • 网站做贩卖毕业论文合法吗深圳网站营销seo费用
  • 天津做app和网站的公司app开发公司哪家好
  • 深圳南山网站建设公司广告联盟接单赚钱平台
  • 郑州官网网站优化公司宁德市教育局官网
  • 石家庄楼盘最新消息搜索引擎优化指的是什么
  • 昆明做个人网站深圳短视频推广
  • 自己的网站在哪做的忘了企业营销策划合同
  • 韶关市网站建设深圳百度网站排名优化
  • 专业模板建站服务产品推广方法有哪些
  • 黄埔网站建设怎么免费推广自己网站
  • 做哪些网站流量最大网站设计模板网站
  • 深圳网站建设公司招聘电话销售太原seo顾问
  • 世界购物网站排名制作网页的代码
  • 网站公共模板是什么知乎推广
  • 网站引导页面制作的四个任务名称关键词优化是什么意思?
  • 做商业网站要交税吗安卓aso关键词优化
  • 杭州知名网站制作公司seo搜索引擎优化策略
  • 传奇网页版手游网站优化推广方法
  • 做网站的软件去哪里买小广告怎么能弄干净
  • 宿迁房产网信息网优化大师下载电脑版
  • 如何鉴赏网站论文销售怎么找客户源
  • 做网站上时需要3d预览功能打开百度首页
  • 在线培训网站常德网站优化公司
  • 网站目录设计制作网站免费
  • 网站开发怎么使用维语好的竞价托管公司
  • 网站设计风格升级软文标题大全