我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java的三大特性怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java的三大特性怎么使用

这篇文章主要介绍了java的三大特性怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java的三大特性怎么使用文章都会有所收获,下面我们一起来看看吧。

java的三大特性是:1、封装,就是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。2、继承,就是子类拥有父类的所有属性和方法,从而实现了实现代码的复用。3、多态,就是父类引用指向子类对象,从而产生多种形态。

Java的三大特性

面向对象三大特性:封装、继承、多态。

封装:

  • 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

继承:

  • 子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有),从而实现了实现代码的复用;

多态:

  • 使用父类引用接受,不同的子类的对象实例,父类引用调用相同的方法,根据子类不同的实例,产生不同的结果

1、封装

1)什么是封装

概念:尽可能隐藏对象的内部实现细节,控制对象的修改及访问的权限。

访问修饰符:private (可将属性修饰为私有,仅本类可见)

2)公共访问方法

以访问方法的形式,进而完成赋值与取值操作。

问题:依旧没有解决到非法数据录入!

  • 提供公共访问方法,以保证数据的正常录入。

  • 命名规范:

  • 赋值:setXXX() //使用方法参数实现赋值

  • 取值:getXXX() //使用方法返回值实现取值

3)示例

public static void main(String[] args) {int a;Num num = new Num();//传入值100num.setNum(100);System.out.println(num.getNum());}
private int a;//在调用get方法时,返回本类a的值public int getNum() {return a;}//接受传入的值100,并赋值给本类的apublic void setNum(int num) {this.a = num;}

4)过滤有效数据

在公共的访问方法内部,添加逻辑判断,进而过滤掉非法数据,以保证数据安全。

5)总结

get/set方法是外界访问对象私有属性的唯一通道,方法内部可对数据进行检测和过滤。

2、继承

1)程序中的继承
  • 程序中的继承,是类与类之间特征和行为的一种赠与或获得。

  • 两个类之间的继承关系,必须满足“is a”的关系。

2)父类的选择
  • 现实生活中,很多类别之间都存在着继承关系,都满足“is a”的关系。

  • 狗是一种动物、狗是一种生物、狗是一种物质。

  • 多个类别都可作为“狗”的父类,需要从中选择出最适合的父类。

  • 功能越精细,重合点越多,越接近直接父类。

  • 功能越粗略,重合点越少,越接近Object类。(万物皆对象的概念)

3)继承

语法:class 子类 extends 父类{ } //定义子类时,显示继承父类

public class 子类名 extends 父类名{//代码块}

应用:产生继承关系之后,子类可以使用父类中的属性和方法,也可定义子类独有的属性和方法。

好处:既提高代码的复用性,又提高代码的可扩展性。

4)继承的特点

Java为单继承,一个类只能有一个直接父类,但可以多级继承,属性和方法逐级叠加。

5)不可继承

构造方法:类中的构造方法,只负责创建本类对象,不可继承。

private修饰的属性和方法:访问修饰符的一种,仅本类可见。

父子类不在同一个package中时,default修饰的属性和方法:访问修饰符的一种,仅同包可见。

3、方法重写

1)方法的重写/覆盖

方法重写原则:

  • 方法名称、参数列表与父类相同。

  • 返回值类型必须与父类相同或其子类

  • 访问修饰符可与父类相同或是比父类更宽泛。

方法重写的执行:

  • 子类重写父类方法后,调用时优先执行子类重写后的方法。

  • 方法重写的特性:

    子类重写父类方法时子类方法会覆盖父类方法。

    子类重写父类方法,访问级别不能严于父类方法。

    子类重写方法名和类型与父类一样。

    父类的构造方法无法重写,只能被覆盖。

示例:

//父类public class Animal {//父类中吃的方法会输出“玩玩玩”public void play() {System.out.println("玩玩玩");}//父类中睡的方法会输出“睡睡睡”public void sleep() {System.out.println("睡睡睡");}}
public class Dog extends Animal {//进行方法重写,将方法重写输出为“狗玩飞碟”public void play() {System.out.println("狗玩飞碟");}}
public class Test {public static void main(String[] args) {// 实例化宠物对象Dog d = new Dog();d.play();d.sleep();}}

运行输出:

java的三大特性怎么使用

2)方法重写与方法重载的区别

相同点:方法名相同
不同点:
重载:参数列表不同,返回值与访问修饰符无关
重写:参数列表相同,返回值相同或其子类,访问修饰符不能比父类更严

4、super关键字

1)super关键字

super关键字可在子类中访问父类的方法。

  • 使用”super.”的形式访问父类的方法,进而完成在子类中的复用;

  • 再叠加额外的功能代码,组成新的功能。

2)super调用父类无参构造

super():表示调用父类无参构造方法。如果没有显示书写,隐式存在于子类构造方法的首行。

3)super调用父类有参构造

super():表示调用父类无参构造方法。

super(实参):表示调用父类有参构造方法。
参构造被执行

4)this与super

this或super使用在构造方法中时,都要求在首行。
当子类构造中使用了this()或this(实参),即不可再同时书写super()或super(实参),会由this()指向构造方法完成super()调用。

class A{public A(){System.out.println(( "A-无参构造"));}public A(int value) {System.out.println(("A-有参构造")); }}class B extends A{public B(){super();System.out.println( "B-无参构造");}public B(int value) {//super();这两货不能跟同时存在this();System.out.println(("B-有参构造"));}}

5、多态

概念:父类引用指向子类对象,从而产生多种形态。

二者具有直接或间接的继承关系时,父类引用可指向子类对象,即形成多态。

父类引用仅可调用父类所声明的属性和方法,不可调用子类独有的属性和方法。

1)多态的应用

方法重载可以解决接收不同对象参数的问题,但其缺点也比较明显。

  • 首先,随着子类的增加,Master类需要继续提供大量的方法重载,多次修改并重新编译源文件。

  • 其次,每一个feed方法与某一种具体类型形成了密不可分的关系,耦合太高。

场景一:使用父类作为方法形参实现多态,使方法参数的类型更为宽泛。

public class Animal {//父类中吃的方法会输出“玩玩玩”public void play() {System.out.println("玩玩玩");}//父类中睡的方法会输出“睡睡睡”public void sleep() {System.out.println("睡睡睡");}}
public class Dog extends Animal {//狗类特有的方法“狗吃狗粮”public void eat() {System.out.println("狗吃狗粮");}}
public class Test {public static void main(String[] args) {// 实例化宠物对象Animal d = new Dog();d.play();d.sleep();//The method eat() is undefined for the type Animal//对于类型动物,eat()方法未定义//当我们去调用子类对象的特有方法时,就会爆出上面的错误提示//如果想要实现子类特有方法,就必须要强转//d.eat();((Dog) d).eat();}}

运行输出:

java的三大特性怎么使用

场景二:使用父类作为方法返回值实现多态,使方法可以返回不同子类对象。

示例:

//动物类  父类public class Animal {public void food() {System.out.println("...");}}
//用extends关键字,继承父类属性public class Dog extends Animal {public void food() {System.out.println("狗吃狗粮");}public void runing() {System.out.println("一直跑跑跳跳");}}
//用extends关键字,继承父类属性public class Fish extends Animal {public void food() {System.out.println("大鱼吃小鱼,小鱼吃虾米");}public void swimming() {System.out.println("小鱼儿,一直游");}}
public class Master {//传入你的动物,并去给它喂食public void food(Animal animal) {System.out.println("喂食");animal.food();}}
import java.util.Scanner;public class Shopping {//你没有动物,所以animal为空Animal animal = null;//判断你要购买的宠物,并返回宠物类(狗、鱼)public Animal shopping(int a) {if (a == 1) {animal = new Dog();} else if (a == 2) {animal = new Fish();}//this.animal=animal;return animal;}public void showMenu() {Scanner input = new Scanner(System.in);System.out.println("欢迎来到一只宠物宠物店");System.out.println("请选择喜欢的宠物:");System.out.println("1.狗 2.鱼 ");int a = input.nextInt();Animal animal = shopping(a);Master mm = new Master();mm.food(animal);//用instanceof判断你买的是狗还是鱼。//狗就执行狗的属性和方法,鱼就执行鱼的属性和方法if (animal instanceof Dog) {Dog d = (Dog) animal;d.runing();} else if (animal instanceof Fish) {Fish f = (Fish) animal;f.swimming();}}}
//测试类public class text {public static void main(String[] args) {Shopping shop = new Shopping();shop.showMenu();}}

运行结果:

java的三大特性怎么使用

2)多态的静态和动态实现

动态绑定:即为重写/覆盖,方法的重写

动态绑定也叫后期绑定,在运行时,虚拟机根据具体对象实例的类型进行绑定,或者说是只有对象在虚拟机中运行创建了之后,才能确定方法属于哪一个对象实例的

  • 根据实际对象是什么,就去找相应对象方法去执行。

  • 动态绑定是在运行时才会执行(例如重写的方法)。

静态绑定:即为重载,方法的重载

一个方法的参数在编译阶段常被静态地绑定,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数

  • 根据类型找相应的属性或者静态变量。

  • 静态绑定是在编译时执行(如成员变量,静态方法)。

关于“java的三大特性怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“java的三大特性怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java的三大特性怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java的三大特性怎么使用

这篇文章主要介绍了java的三大特性怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java的三大特性怎么使用文章都会有所收获,下面我们一起来看看吧。java的三大特性是:1、封装,就是将类的某些信息隐藏
2023-07-04

java三大特性是什么

java三大特性是:1、面向对象,java最核心的特性之一,将现实世界中的事物抽象成类,并且用对象来描述和处理问题;2、平台无关性,java源代码经过编译后生成的是字节码,而不是机器码;3、高性能,通过即时编译和垃圾回收技术的应用,在运行时
2023-08-04

Java面向对象的三大特性

本篇内容主要讲解“Java面向对象的三大特性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java面向对象的三大特性”吧!Java面向对象三大特性面向对象简称 OO(Object Oriente
2023-06-02

怎么理解Java面向对象三大特性

这篇文章主要讲解了“怎么理解Java面向对象三大特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Java面向对象三大特性”吧!继承Java中的继承只能单继承,但是可以通过内部类继承
2023-06-02

java的三大特性封装、继承、多态

我们知道面向对象的三大特性是封装、继承和多态。然而我们有时候总是搞不清楚这些概念。下面对这些概念进行整理,为以后面向抽象的编程打下坚实的基础。  封装的概念还是很容易理解的。如果你会定义类,那么相信你对封装的概念已经完全掌握了。下面定义的几个类,就是对数据的封
java的三大特性封装、继承、多态
2017-04-24

怎么使用的新Java特性

这篇文章主要讲解了“怎么使用的新Java特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用的新Java特性”吧!1 Try-with-resource 语句使用 try-catch
2023-06-15

关于Java三大特性之多态的总结

面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。1.定义:多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式
2023-05-30

Python面向对象的三大特性是什么

这篇“Python面向对象的三大特性是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python面向对象的三大特性是什么
2023-07-02

React的特性怎么使用

这篇“React的特性怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“React的特性怎么使用”文章吧。多端一致的开发
2023-06-27

React三大属性之props怎么用

这篇文章主要介绍React三大属性之props怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!props功能在于组件间通信(父子组件),首先说说在各种组件中的用法:类组件//父组件传值class Father e
2023-06-14

Java8新特性怎么使用

本篇内容介绍了“Java8新特性怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java语言新特性Lambda表达式Lambda表达式
2023-06-02

Vue3.0新特性怎么使用

本篇内容主要讲解“Vue3.0新特性怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3.0新特性怎么使用”吧!1、Vue3带来的新变化性能提升(零成本:从vue2切到vue3就享受到
2023-06-29

Java 9特性的三个新的API分别是什么

本篇文章给大家分享的是有关Java 9特性的三个新的API分别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Oracle已经公布,Java9***增强计划集(众所周知的J
2023-06-17

es6新特性怎么使用

这篇“es6新特性怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“es6新特性怎么使用”文章吧。es6新特性有:1、l
2023-07-04

php中面向对象的三大特性分别是什么

这篇“php中面向对象的三大特性分别是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php中面向对象的三大特性分别是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录