`

java简介以及迅速了解java(六)

阅读更多

面向对象的三大特征:封装、继承、多态
Java中的封装
封装,一个对象和外界的联系应当通过一个统一的接口。
对象中的内容应当公开的公开,应当隐藏的隐藏。(对象的属性应当隐藏)
一个对象的内部是透明的,把对象内部的可透明性和隐藏的特性区分开,该透明的透明,该隐藏的隐藏。
属性的封装,java中类的属性的默认访问权限不是private,是default,不加访问权限修饰符的属性和方法默认为default。
隐藏该属性或方法,要加private(私有)修饰符,限制只能在类的内部进行访问。属性一般都作成私有private
对于类中的私有属性,要对其给出一对方法(getXxx(),setXxx())访问私有属性,保证对私有属性的操作的安全性。
方法的封装,对于方法的封装,该公开的公开,该隐藏的隐藏。方法公开的是方法的声明(定义),即(只须知道参数和返回值就可以调用该方法),隐藏方法的实现会使实现的改变对架构的影响最小化。
封装的意义,封装会使方法实现的改变对架构的影响最小化。
完全封装,类的属性全部私有化,并且提供一对方法来访问属性。
例:
java中的继承

public class Person{
private int age;//属性的封装
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name=name; //this是一个关键字,他代表的是当前对象
//这一句的意思就是为本对象的属性name进行赋值
}
public int getAge(){//方法的封装
return age;
}

private String nickname(){//方法的封装
……
}
public void setAge(int age){
this.age=age
}
}

 

继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于可以抽取多类事物
的共性。
java中的继承要使用extends关键字,java中只允许单继承,一个类只能有一个父类。
这样继承关系呈树状,体现了java的简单性。
子类只能继承在父类中可以访问的属性和方法(父类中私有的属性和方法会被继承但子类中但无法访问罢了)。
访问控制修饰符:(可以修饰属性和方法)
private修饰符,表示只有本类内部可以访问。
default修饰符,方法不加修饰符,默认为default,表示在同一个包中可以访问,父子类在同一包中,子类可以继承父类的相应内容。(可以修饰类)
protected(保护)修饰符,表示同一包中可以访问,不同包的子类也可以访问继承。
public修饰符,表示公开,在任何地方都可以访问。(可以修饰类)
修饰符的权限是由上而下逐渐变宽的。
继承的意义,子类可以在父类的基础之上对父类的功能进行发展,继承使系统的耦合性降低,使对象间的联系变得松散,使多类对象间的联系可用其父类对象代替。
注意:构造方法不能被继承。
父类的属性及方法的确定:从子类的角度来看子类间的共性,所有子类都有这个属性时,应当考虑是否该放在父类中。
方法可以看作是对象的行为,类的方法是这一类的对象所共有的行为,所以应当在方法的确定时,注意是不是所有的子类型中都需要有这个方法,根据不同的子类型的该方法的不同,才覆盖这个方法。
java中方法的覆盖

子类中有和父类中可访问(可继承到子类)的同名、同返回值类型、同参数表的方法,才是覆盖了从父类继承来的方法。
注意:覆盖父类中的某个方法,子类中写的方法要和父类中的方法名、参数表、返回值类型,都相同的,权限访问修饰符比父类的方法的权限修饰符的权限要么相同,要么更宽。
注意:在jdk1.4以前要求方法的覆盖时,需要方法的返回值,参数表,方法名必须严格相同,而在jdk1.5中方法覆盖,子类的中覆盖的方法的返回值可以是父类中被覆盖的方法的返回值类型的子类型。
注意:子类覆盖父类的方法时,方法的修饰符要么相同,要么子类中的方法的修饰符表示的访问权限要宽于父类。父类中的私有方法,不能被继承到子类,子类中即使将其覆盖了也不会有多态。
覆盖的意义:对从父类中继承的方法的发展。
注意:父子类中有同名的属性不叫子类覆盖了父类的属性,这种情况较作属性的遮盖(shadow)。
例:

public class Person{
……
private int age;
public void study(){
System.out.println(“学习”);
}
}
class Child extends Person{
private int age;//属性的遮盖
public void study(){//覆盖了父类中的study()方法
System.out.println(“在小学学习”);
}
}
public class Test{
static public void main(String[] args){
Person p=new Child();
p.study();
}
}

 
构造有继承关系的对象的步骤

1,递归的构造父类的对象
2,分配空间
3,初始化本类实例变量(属性)
4,调用本类的构造方法

注意:子类对象中包含着父类的对象,父类对象加上子类对象,才是完整的子类对象的实例。在构造子类对象
时,先递归的构造父类对象,会默认的调用父类的无参的构造方法,所以最好将类中无参构造方法写上。

分享到:
评论

相关推荐

    JAVA语言快速入门

    接下来,了解Java的基础语法是关键。这包括: 1. **基本数据类型**:如整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。 2. **变量**:声明和初始化变量,理解其作用...

    Java核心编程Java 课件ppt

    1. **Java简介**:Java是由Sun Microsystems开发的,后来被Oracle公司收购。它被设计成“一次编写,到处运行”,这意味着编写的代码可以在任何支持Java的平台上运行,无需重新编译。 2. **Java环境搭建**:学习如何...

    Java全栈学习路线及知识清单

    * Java基础语法:了解Java的基本语法结构,包括变量、数据类型、运算符、控制流语句、方法等 * 流程控制和方法:了解Java的流程控制语句和方法的使用 * 数组:了解Java的数组数据类型和操作 * 面向对象编程:了解...

    JAva资源网站大全

    这里不仅有Java基础知识的详细介绍,还有高级特性的深入解析,是Java开发者深入了解Java内部机制的首选之地。 ### 2. CN-Java 网址:http://www.cn-java.com/ CN-Java是一个专注于Java技术的中文社区,提供了丰富...

    2022年应届生java简历范文.docx

    * Java开发职业发展道路:了解Java开发职业的发展道路,如从初级开发到高级开发的发展过程。 * Java开发职业规划:了解Java开发职业的规划,如职业发展目标、职业发展方向等。 * Java开发职业技能:了解Java开发职业...

    Java2Pas(Java代码转换成Delphi代码)

    下面我们将详细探讨Java2Pas的工作原理、使用方法以及其在IT领域的应用。 首先,Java和Delphi是两种不同的编程语言,它们有着不同的语法结构和编程模型。Java是一种面向对象的语言,由Sun Microsystems(现已被...

    Java croe java 思想

    通过阅读《Java核心编程思想》,读者不仅能全面掌握Java语言,还能了解到许多最佳实践和设计模式,从而在实际项目开发中游刃有余。这本书的2010最新版可能还包含了Java新特性的介绍,比如Java 7和8的Lambda表达式、...

    java 8快速入门

    Java 8快速入门教程为有一定Java基础的读者提供了一个指南,帮助他们快速了解并应用Java 8的新特性。无论你是想通过实践学习如何使用新的日期时间API,还是想掌握函数式编程的核心概念,本文都可以作为你的起点。...

    韩顺平30天学java

    《韩顺平30天学Java》是一门针对初学者设计的Java编程课程,旨在帮助学员在短短一个月的时间内掌握Java编程基础。该课程由知名IT教育专家韩顺平教授,以其独特的教学风格和深入浅出的讲解方式,使得复杂的编程概念变...

    java 寝室版(六)

    在“Java 寝室版(六)”这个主题中,我们主要探讨的是关于Java编程语言在实际工作中的应用以及个人经验的理解。Java是一种广泛应用的面向对象的编程语言,以其跨平台性、稳定性和高效性而受到业界的广泛赞誉。在这...

    JAVA API官方文档中文版

    对于初学者来说,这是了解Java API的起点。 2. **类和接口**:这是文档的主体部分,详细列出了Java平台提供的所有类和接口。每个条目都包含了类或接口的定义、构造方法、方法、常量等详细信息。例如,`java.lang....

    JAVA帮助文件(第六版)

    3. 了解Java的新特性和最佳实践,跟进行业发展趋势。 4. 解决编程中遇到的问题,通过查找对应类或方法的详细解释来找到解决方案。 5. 阅读和理解其他人的代码,因为大多数Java代码都基于标准API。 总之,"JAVA帮助...

    Java连接SybaseSqlAnywhere数据库驱动以及Demo

    首先,我们需要了解Java数据库连接(JDBC)API,这是Java与数据库交互的标准接口。Java通过JDBC驱动程序与特定数据库通信。对于Sybase SQL Anywhere,我们需要的是对应的JDBC驱动,这里提供的`jconn3.jar`就是Sybase...

    学习JAVA 快速学习JAVA

    1. **Java语言概述**:了解Java的历史、特性以及其在软件开发中的应用。Java是由Sun Microsystems的詹姆斯·高斯林(James Gosling)在1995年创建的,现在由Oracle公司维护。它的主要特点包括平台无关性(Write Once...

    java-Swing快速上手

    帮助你快速了解java-Swing,附带程序图例,关键代码

    java基础教程ppt

    1. **Java简介**:介绍Java的历史、特点以及其在软件开发中的应用领域。Java由Sun Microsystems的詹姆斯·高斯林(James Gosling)于1995年推出,其设计目标是“一次编写,到处运行”。 2. **环境搭建**:讲解如何...

    matomo-java-tracker:Matomo Tracking HTTP API的官方Java实现-源码

    了解Matomo Java Tracker有助于提升Java开发者在Web分析领域的专业技能,对于面试来说,可以展示对用户行为跟踪、数据分析以及如何将这些知识应用于实际项目的能力。以下是一些可能的面试问题: 1. 如何使用Matomo ...

    java学习文档(快速学习-非常使用)

    本文档将带你从零开始,逐步了解Java编程的基础知识。 一、从面向过程编程到面向对象编程的思维转变 在面向过程编程中,程序设计侧重于过程的顺序执行,即通过一系列步骤处理数据。而面向对象编程(OOP)则以数据为...

    java实现视频压缩

    在IT行业中,视频压缩是一项重要的技术,特别是在大数据和互联网传输领域。Java作为一种广泛使用的编程语言,也提供了多种方法来处理视频压缩。...对于想要深入这一领域的开发者来说,了解并实践这些技术是十分必要的。

Global site tag (gtag.js) - Google Analytics