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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。