栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面向对象的基本概念以及用法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象的基本概念以及用法

  一、什么是面向对象         面向对象乃是Java语言的核心,是程序设计的思想。Java语言的面向对象技术包括了面向对象和面向过程的基本概念,面向对象的特征,Java语言的类,对象,修饰符,抽象类等一系列的知识点。 面向对象的特征 1、封装:就是把属性私有化,提供公共方法访问私有对象。举个简单的例子,我们去Apple店里买个iPhoneX,我们不需要知道它是怎么制造的,我们只需要知道它能用来打电话,上网和用来装B就行了。对于程序设计,用户只需要知道类中某个方法实 2、继承:当多个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其它类继承这个父类。继承后子 类自动拥有了父类的属性和方法,比如猫,狗,熊猫他们共同的特征都是动物,有颜色,会跑,会叫等特征。我们可以把这些特征抽象成我一个Animal类(也就是父类)。然而他们也有自己独特的特性,比如猫会抓老鼠,喵喵叫,熊猫有黑眼圈,能吃竹子,狗会汪汪。于是我们就根据这些独特的特征分别抽象出来Cat,Dog,Panda类等。他们拥有Animal类的一般属性和方法,也拥有自己特有的某些属性和方法。 3、多态:简单来说就是“一种定义,多种实现”。同一类事物表现出多种形态。Java语言中有方法重载和对象多态两种形式的多态      方法重载:在一个类中,允许多个方法使用同一个名字,但是方法的参数不同,完成的功能也不同       对象多态:子类对象可以与父类对象进行相互转换,而且根据其使用的子类的不同,完成的功能也不同 4、抽象:抽象是从许多事物中,舍弃个表的,非本质的属性,抽取出共同的,本质的属性的过程。例如教师,学生和工人,他们共同的特质是人类,既然是人类就有共同的属性:性别,年龄,身高,体重等。抽象的过程就是比较的过程,通过比较找出事物之间的共同属性,通过比较区分本质。 stati修饰符:        static关键字的中文含义是静态的意思。使用static修饰的成员变量,常量,方法和代码分别称为静态变量,静态常量,静态方法,静态代码块,它们统称为静态成员。静态成员归整个类所有,不依赖特定的实例,被类的所有实例所共享的。只要被JVM加载就可以根据类名在全局数据区内找到

二、static关键字注意事项

•    在静态方法中是没有this关键字的

•    静态方法只能访问静态的成员变量和静态的成员方法 类的成员变量分为两种: 1、实例变量(ps:也就是没有被static关键字修饰的变量) 2、静态变量  三、 静态变量和成员变量的区别
(1、) 所属不同
•     静态变量属于类,所以也称为为类变量
•     成员变量属于对象,所以也称为实例变量(对象变量)
(2、)内存中位置不同
•     静态变量存储于方法区的静态区
•     成员变量存储于堆内存
(3、) 内存出现时间不同
•     静态变量随着类的加载而加载,随着类的消失而消失
•     成员变量随着对象的创建而存在,随着对象的消失而消失
(4、) 调用不同
•     静态变量可以通过类名调用,也可以通过对象调用
•     成员变量只能通过对象名调用 四、成员变量和局部变量的区别
l  在类中的位置不同
•     成员变量:类中方法外
•     局部变量:方法内或者方法声明上
l  在内存中的位置不同
•     成员变量:堆内存
•     局部变量:栈内存
l  生命周期不同
•     成员变量随着对象的存在而存在,随着对象的消失而消失
•     局部变量随着方法的调用而存在,随着方法的调用完毕而消失
l  初始化值不同
•     成员变量有默认的初始化值
•     局部变量没有默认的初始化值,必须先定义,赋值,才能使用。
  五、main方法是静态的
l public static voidmain(String[] args) {}
•    public 被jvm调用,访问权限足够大。
•    static 被jvm调用,不用创建对象,直接类名访问
•    void被jvm调用,不需要给jvm返回值
•    main 一个通用的名称,虽然不是关键字,但是被jvm识别
•    String[] args以前用于接收键盘录入的
  六、访问控制符      Java语言中,访问修饰符可以出现在类,成员变量,成员方法以及构造方法前,用来控制权限。Java提供了4种级别的访问控制  public   权限最宽    修饰的类,属性,方法不仅可以跨类还可以跨包访问
private  权限最狭隘  修饰的类,属性,方法只能被该类的对象访问,即使是其子类也不能访问! 做的很绝-.-
protected  介于public和private之间 修饰的类,属性,方法能被该类的对象,本包,子类访问(即使没和父类在同一包中)
default   默认访问模式,只向同一个包中的类公开,即同包访问。

七、   成员变量

•    构造方法

•   无参构造方法

•   带参构造方法

•    成员方法

•   getXxx()

•   setXxx()

l 给成员变量赋值的方式 l  无参构造方法+setXxx() l  带参构造方法 八、代码块
l 代码块
•    在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。
•    局部代码块
•   在方法中出现;限定变量生命周期,及早释放,提高内存利用率 •    构造代码块
•   在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行 •    静态代码块在类中方法外出现,加了static修饰
•   在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次。  静态代码块,构造代码块,构造方法的执行顺序?

    静态代码块 -- 构造代码块 -- 构造方法

    静态代码块:只执行一次

    构造代码块:每次调用构造方法都执行

九、继承
l 继承概述
•    多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
•    通过extends关键字可以实现类与类的继承
      •   class 子类名  extends 父类名{} 
•    单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。
•    有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。
 
继承的好处
l 继承的好处
•    提高了代码的复用性
•   多个类相同的成员可以放到同一个类中 •    提高了代码的维护性
•   如果功能的代码需要修改,修改一处即可 •    让类与类之间产生了关系,是多态的前提
   • 其实这也是继承的一个弊端:类的耦合性很强
让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。
原则:低耦合,高内聚。
耦合:类与类的关系
内聚:自己完成某件事情的能力 Java中继承的特点
l  Java只支持单继承,不支持多继承。
•     一个类只能有一个父类,不可以有多个父类。
l Java支持多层继承(继承体系) 十、封装
l 封装概述
•    是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
l 好处:
•     隐藏实现细节,提供公共的访问方式
•     提高了代码的复用性
•     提高安全性。
l  封装原则:
•     将不需要对外提供的内容都隐藏起来。
•     把属性隐藏,提供公共方法对其访问。 private关键字
l  private关键字:
•     是一个权限修饰符。
•    可以修饰成员(成员变量和成员方法)
•    被private修饰的成员只在本类中才能访问。
l private最常见的应用:
•    把成员变量用private修饰
•    提供对应的getXxx()/setXxx()方法
•     一个标准的案例的使用

this关键字

l this:代表所在类的对象引用

l 注意:

•    方法被哪个对象调用,this就代表那个对象 十一、匿名内部类

l 就是内部类的简化写法。

l 前提:存在一个类或者接口

•     这里的类可以是具体类也可以是抽象类。

l 格式:

new类名或者接口名(){重写方法;}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号