`
剑锋无刃
  • 浏览: 34324 次
  • 性别: Icon_minigender_1
  • 来自: 长沙市
最近访客 更多访客>>
社区版块
存档分类
最新评论

类与对象

    博客分类:
  • java
阅读更多

 

类和对象:

类:主观抽象,是对象的模板,可以实例化对象

习惯上类的定义格式:

package xxx;

import xxx;

public class Xxxx{

属性 ······;

构造器 ······;

方法 ······;

}

 

定义属性:实例变量

格式:[ 修饰符 ]  类型 变量名  [ = ? ]

实例变量定义在类中但在任何方法之外。

实例变量有默认值:各种各样的0。(同数组)

实例变量的作用域至少在本类内部,受访问控制符的限制。

在重合作用域,实例变量和局部变量允许有命名冲突,“局部优先”。

定义方法:

格式: [ 修饰符 ]  返回类型 方法名( 参数列表 ) [ throws  异常 ] { ······ } 

java中所有参数都是值传递。

  当没有值返回时,返回类型必须被定义为void。 

返回类型必须与方法名相邻,其他修饰符可以调换位置。

构造器:

在创建对象的过程中调用的方法。

构造器没有返回类型。

构造器的名字与类名相同。

格式为:[ 修饰符 ]  类名( 参数列表 ){  },修饰符可以是private、 protected、 default、private

在一个对象的生成周期中构造器只用一次,由系统自动调用,不允许手工调用。

程序员没有提供一个构造器,系统会自动提供一个无参的构造器。

获得对象的方式:

通过new(在堆空间中申请分配空间),new 类名(),可以通过这种形式或的一个对象,这时的对象是无法使用,必须把他的地址存放进一个对象变量才能够使用。

例如 :

Car c=new Car();

注意:

最好在写类时提供一个无参的构造器。

this关键字:

this是个隐式参数,代表当前对象;

publie class Student{

private String name;

public void setName(String name){

this.name=name; //this.name为当前对象的成员变量

}

}

如果某个构造方法的第一个语句具有形式this( ··· ),那么这个构造方法将调用同一类中的其他构造方法。

        注意:

        在构造器中this(...)必须放在该构造器的第一行。

this不能出现在静态方法里面

类、对象、实例三者的关系:

类:是对象的模板,可以实例化对象

对象:类的个体

实例:实现的对象

student s;

s=new student();

其中 Student为类,s为对象,new Student()为实例,s赋值后也是实例了。

 

方法重载:

方法名相同,参数表不同,不考虑返回值类型(但最好还是使返回类型一致)。

编译器根据参数,选择一个方法,如果没有完全匹配的,对于参数表采用“向上就近匹配原则”,但不允许模棱两可。

方法重载屏蔽了一个对象的同一类方法由于参数不同所造成的差异。

封装:

类的属性加private修饰符,来限制只能够在类的内部进行访问,有效的保护数据。

对于类中的私有属性,要对其给出一对方法getXxx(),setXxx()访问私有属性,保证对私有属性的操作的安全性。

方法公开的是方法的声明,即只须知道参数和返回值就可以调用该方法,隐藏方法的实现的细节。

一个对象和外界的联系应当通过一个统一的接口,应当公开的公开,应当隐藏的隐藏。

继承:

父类到子类是从一般到特殊的关系。

泛化:将不同子类中的共性抽象成父类的过程。

特化:在原有父类的基础上加入一些个性的过程。

原则:父类放共性,子类放个性。

继承的关键字:extends

Java只支持单继承:一个类最多只有一个直接的父类。

 

      方法覆盖:

方法名:相同

参数表:相同

访问限制符:相同或者更宽

返回值类型:相同或者子类返回的类型是父类返回的类型的子类(在JDK5.0以后)

抛出的异常:不能比父类更宽。

 

      super关键字:

super()表示调用父类的构造器

super()也和this()一样必须放在方法的第一句

super()和this()不能同时出现         

super可以屏蔽子类属性和父类属性重名时带来的属性遮盖,super. 表示调用父类的方法或属性

在子类的构造器中如果没有指定调用父类的哪一个构造器,那么就会调用父类的无参构造器,即super()

注意:

父类的构造器不能被子类继承

方法和属性可以被继承,权限不限制能否继承过来,限制的是能否直接访问

先构造父类,后构造子类,先this后super

多态:

多态分为两种:编译时多态和运行时多态。

编译时类型:主观概念,把它看作什么。

运行时类型:客观概念,实际它是什么。

  例:Animal a=new Dog();

      指着狗问,这个动物是什么?

     

      运行时多态的三原则:

对象类型不变。

只能对对象调用编译时类型中定义的方法。

在程序的运行时,根据对象的运行时类型,找覆盖后的方法来调用。(运行时动态类型绑定)

      强制类型转换: 一定没有新对象生成。(父类的引用赋值给子类的引用需要进行强制类型转换)

      关键字:instanceof

          用法:引用  instanceof  类名    判断这个引用所指向的对象是否属于这个类。

  用在强制转换之前,避免类型转换异常。

if(a instanceof Dog){

Dog d=(Dog)a;

}

多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

分享到:
评论

相关推荐

    JAVA类与对象及数组习题

    JAVA类与对象及数组习题 JAVA类和对象及数组是JAVA编程语言的基础概念。下面是关于JAVA类和对象及数组的习题,涵盖了构造方法、继承、多重继承、变量声明、数组初始化等方面的知识点。 1. 构造方法的调用方式: ...

    3类与对象基础实验(一)

    在本实验"3类与对象基础实验(一)"中,我们主要探讨的是Java编程语言中的核心概念——类和对象。这个实验是针对浙江大学城市学院2009级学生的,旨在帮助他们深入理解和掌握面向对象编程的基础。 首先,我们要了解...

    java类与对象教学(2)

    在“java类与对象教学(2)”中,我们将深入探讨几个关键知识点:对象重构、`this`关键字、静态变量与静态方法,以及对象的进一步讨论和包的使用。 1. **对象重构**: 重构是改进代码结构的过程,不改变其外部行为,...

    【第5章:面向对象基础】_面向对象、类与对象的定义

    本章的"【第5章:面向对象基础】_面向对象、类与对象的定义"将详细讲解面向对象编程的核心概念,包括如何定义类、创建对象,以及如何利用继承和多态性设计高效的程序。通过学习,你将能更好地理解和应用Java的面向...

    C++习题\4类与对象.doc

    c++ 习题 4类与对象.doc (选择 解答 填空)

    java类与对象实例

    "java类与对象实例" 在 Java 中,类和对象是两个紧密相连的概念。类是一种蓝图,用于创建对象,而对象是类的一个实例。类描述了对象的基本结构,包括属性、方法和事件等。类设计的关键概念包括封装、继承和多态。 ...

    类与对象的分析与设计

    在编程世界里,类与对象是面向对象编程(OOP)的核心概念,它们为我们提供了抽象、封装、继承和多态等重要特性。本教程“类与对象的分析与设计”将深入探讨如何从实际问题中抽离出这些概念,以便进行高效、结构化的...

    java类与对象教学(1)

    在Java编程语言中,"类与对象教学(1)"是一个重要的学习主题,它涵盖了面向对象编程的基本概念,对比了面向对象编程(OOP)与面向过程编程(POP),并深入探讨了类、对象以及如何在实际开发中创建和使用它们。...

    Java类与对象3

    ### Java类与对象详解 #### 一、面向对象编程的核心理念 面向对象编程(OOP)是一种编程范式,其核心在于将现实世界中的事物抽象为计算机中的对象,通过对象来模拟和处理复杂的问题。这一理念源于试图让编程更加...

    二_类与对象_

    在编程世界中,类与对象是面向对象编程(OOP)的核心概念。面向对象编程是一种设计和实现软件的方法,它基于“对象”的概念,而这些对象则是类的实例。类可以看作是创建对象的蓝图,它定义了对象的数据属性和行为。...

    第3讲 面向对象—类与对象

    本章重点讲解了类与对象的概念及其在Java中的应用。 首先,面向对象的基本思想是基于现实世界的抽象,通过对象、类、继承、封装、多态等概念来构建程序。这种编程方式更符合人类的思维模式,使得代码更易于理解和...

    《Java程序设计》第8章 类与对象教案.pdf

    【Java程序设计】类与对象是Java编程的核心概念,它们是面向对象编程的基础。类是对具有相似属性和行为的事物的抽象,而对象是类的实例,代表着具体存在的个体。 在【描述】中,该教案是为了2021年的高校教师资格证...

    类与对象练习题 带答案

    C++ 类与对象练习题带答案 本资源是一个 C++ 编程语言的练习题集,涵盖了类与对象的基础知识。练习题分为选择题和填空题两部分,涵盖了类的定义、对象的声明、成员函数、访问权限、继承等关键概念。 选择题 1. ...

    《面向对象技术与方法》08、类与对象.pdf

    《面向对象技术与方法》08、类与对象这一章节深入探讨了类与对象的基本概念及其操作,下面我们将详细解析其中的关键知识点。 ### 类与对象的基本概念 类是面向对象编程中用于定义对象的蓝图或模板,它描述了一组...

    类与对象构建Java程序的基石优秀文档.ppt

    "类与对象构建Java程序的基石优秀文档" 本文档主要讲述了Java程序设计的基础知识,涉及到类与对象的概念、关系、访问控制修饰符、面向对象编程的基本概念、抽象、封装、继承、多态等重要特征。 在第四章中,作者...

    Swift面向对象编程:类与对象教程-从基础知识到高级用法全面解析

    首先解释了类与对象的基本概念,展示了如何定义类、实例化对象、设置属性和方法。接着讨论了类的各种特性,包括继承与重写、协议与扩展、类与结构体的区别、访问控制与封装。进一步讲解了类的高级用法,如泛型类、...

    关于c++类与对象的资料

    在C++编程语言中,类(Class)与对象(Object)是核心概念,它们是实现面向对象编程(Object-Oriented Programming, OOP)的基础。本篇资料将深入讲解类与对象的相关知识。 2.1 类与对象 类是用户自定义的一种数据...

    《面向对象技术与方法》06、类与对象.pdf

    ### 面向对象技术与方法之类与对象 #### 类与对象概述 在计算机科学领域,特别是软件工程中,面向对象编程(Object-Oriented Programming, OOP)是一种广泛采用的方法论,它通过模拟现实世界中的实体及其交互来...

Global site tag (gtag.js) - Google Analytics