java面向对象三大特性总结,简述Java面向对象特性

  java面向对象三大特性总结,简述Java面向对象特性

  Java面向对象的三个特点:

  封装,继承,多态。

  一、封装

  类的信息隐藏在类内部,不允许外部程序直接访问。相反,隐藏信息由类提供的方法操作和访问。

  封装的实现步骤:

  修改属性的可见性:设置为私有

  创建getter/setter方法:用于读取和写入属性。

  在getter/setter方法中添加属性控制语句:判断属性值的合法性。

  (推荐学习:java视频教程)

  用private修改属性的可见性,例如:

  //表示以此方法读取屏幕

  公共浮动getScreen{

  返回屏幕;

  }

  //如果viod没有返回值和变量名。属性=值,不能直接调用。可以通过变量名来实现。getScreen()

  公共viod setScreen(浮动新闻屏幕){

  screen=newscreen

  }变量名。attribute=value不能直接调用。可以通过变量名来实现。getScreen()。

  包的作用:

  1.管理Java文件

  2.解决同名文件冲突。

  包装:包装

  包名注意:必须放在Java源程序的第一行,包名之间可以用“.”隔开。比如在com.imooc.MyClassJava中,包的命名约定都是小写字母。

  Java中的访问控制修饰符

  公共、默认、受保护、私有

  Public: Public,所有阶层都可以使用。

  Default:默认修饰符,与包内访问相同。

  受保护:受保护。可以访问同一个包和继承这个类的外包类。

  Private:私有类,只能在这个类内部访问。

  最终,最后,完成(连续地)

  最终:修饰符。不能继承由此修饰符修改的类;由该修饰符修改的变量不能被修改,只能被读取;由该修饰符修改的方法只能使用,可以重载,不能重写。此修饰符不能修饰抽象类。

  最后:捕获异常后的清除操作。

  Finalize:一个方法;主要是在GC删除对象之前,调用对象上的finalize方法,判断对象是否被引用。

  Java中的this关键字

  //最初手工输入

  公共void setScreen(浮动新闻屏幕){

  screen=newScreen

  }

  //用eclips自动生成的是

  公共void setScreen(浮动新闻屏幕){

  this.screen=screen

  }这个。property:操作当前对象的属性。

  这个。方法:调用当前对象的方法。

  在ecilipse中,可以直接生成setter、getter方法并添加这个关键字。

  该关键字调用成员变量或成员方法的静态成员。在静态方法中不能使用this和super关键字。同时可以返回类的引用,调用构造函数。

  Java 中的静态内部类

  静态内部类是静态修饰的内部类,其特征在于:

  1.静态内部类不能直接访问外部类的非静态成员,但是可以通过新的外部类()来访问。成员。

  2.如果外部类的静态成员与内部类的成员同名,您可以通过“类名”访问外部类的静态成员。静态成员";如果外部类的静态成员的名字和内部类的名字不一样,可以直接用“成员名”调用外部类的静态成员。

  3.创建静态内部类的对象时,不需要外部类的对象,直接创建内部类的对象名=new inner class();

  二、继承

  继承的概念:是一种类之间的关系。

  继承的好处:

  1)子类拥有父类的所有属性和方法(private修饰的无效)

  2)实现代码复制。

  语法规则:class子类扩展父类{}

  方法的重写:

  子类对父类的继承不满意,重写自己的内容,重写后先调用子类方法。

  语法规则:

  返回值、类型、方法名的参数类型个数必须和父类集成方法的个数相同,这叫重写。

  继承初始化顺序:

  父类属性初始化父类构造函数子类属性初始化子类构造函数0

  super关键字:

  在对象内部使用时,它可以表示父类对象。

  访问父类的属性:super.age

  访问父类的方法:super . eat();

  super的应用:

  父类的构造函数必须在子类的构造函数期间调用。

  如果子类的构造函数没有显示调用父类的构造函数,系统调用pa

  如果显示的调用构造函数,它必须在子类的构造函数的第一行。

  如果子类构造函数中没有显示调用父类的构造函数,并且父类没有无参数构造函数,编译就会出错。

  Object类:

  不标识谁继承的类等同于继承Object类。

  toString()方法:

  在Object类中定义toString()方法时返回的对象的哈希代码(对象地址字符串)。

  您可以通过重写toString()方法来表达对象的属性。

  equals()方法:

  比较的是对象的引用是否指向同一个内存地址。注意:比较两个对象的equals()方法不适用。如果你创建一个新的对象,内存会创建一个新的存储地址,所以即使对象的属性一致,它们也不相等。为了比较对象的特定属性值,您需要重写equals()方法。

  比较getClass()返回类对象 :

  GetClass()返回类对象:描述类的代码信息,类的属性、类型、变量名、方法名是什么,更关注类的代码信息。

  创建对象名返回的是类的对象:

  关注的是对象的属性是有价值的信息,或者说是这个对象的数据的信息。

  三、多态

  多态性:指对象的各种形式,主要分为引用多态性和方法多态性。

  继承是多态的基础。别忘了孩子和父母应该是有继承关系的。

  多态特性:

  1.参考多态性

  父类引用可以指向这个类对象Animal obj 1=new Animal();

  父类引用可以指向子类对象Animal obj 2=new Dog();

  但是不能用子类的引用指向父类Dog obj 3=new Animal();//错误

  2.方法多态性。

  Class Animal定义了一个eat()方法输出一个语句(动物有吃的能力);在子类Dog中重写eat()方法,输出一个语句(狗吃肉);然后,在test类的main函数中,如果使用obj1.eat(),则调用父类的方法。如果obj2用于调用eat()方法,则调用子类的方法。

  还有一种情况,比如创建一个继承父类Animal的子类Cat,但是继承的eat()方法在Cat中没有被覆盖。然后,我们在测试类的主函数中创建一个子类对象,Animal obj 3=new Cat();然后调用obj 3 . eat();然后,结果调用子类继承父类的方法。

  最后,在特殊情况下,不能使用多态性。如果一个唯一的方法public void watchDoor()被添加到一个子类中,它包含一个output语句(狗有看门的能力);那么我们就不能在test类的main函数中使用obj2.watchDoor()(我们要先定义对象Animal obj2=new Dog()),也就是不能通过父类的引用来调用子类的方法。

  相关文章和教程推荐:java入门。以上是java面向对象特性介绍的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: