java的类和对象及构造方法

java的类和对象及构造方法
java的类和对象及构造方法

java 的类和对象及构造方法

类与对象的概念:程序设计所面对的问题域——客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议)。把客观世界中的事物映射到面向对象的程序设计中就是对象。对象是面向对象程序设计中用来描述客观事物的程序单位。客观世界中的许多对象,无论其属性还是其行为常常有许多共同性,抽象出这些对象的共同性便可以构成类。所以,类是对象的抽象和归纳,对象是类的实例。抽象原则所谓抽象(abstraction),就是从被研究对象中舍弃个别的、非本质的、或与研究主旨无关的次要特征,而抽取与研究工作有关的实质性内容加以考察,形成对所研究问题正确的、简明扼要的认识。例如,“马”就是一个抽象的概念,实际上没有任何两匹马是完全相同的,但是我们舍弃了每匹马个体之间的差异,抽取其共同的、本质性的特征,就形成了“马”这个概念。抽象是科学研究中经常使用的一种方法,是形成概念的必要手段。在计算机软件开发领域,抽象原则的运用非常广泛,概括起来,可分为过程抽象和数据抽象两类。

过程抽象过程抽象是指:软件开发者可以把任何一个完成确定功能的操作序列都看作是一个单一的实体,尽管它实际上可能是由一系列更低级的操作完成的。运用过程抽象,软件

开发者可以把一个复杂的功能分解为一些子功能(模块),如果子功能仍比较复杂,则可以进一步分解。这使得开发者可以在不同的抽象层次上考虑问题,在较高层次上思考时可以不关心较低层次的实现细节。面向过程的程序设计采用的是过程抽象方法。使用过程抽象有利于控制、降低整个程序的复杂度,但是,这种方法允许在全系统的范围内进行功能的描述,本身自由度大,难于规范化和标准化,不易保证软件的质量,而且操作起来也有一定难度。数据抽象:数据抽象把系统中需要处理的数据和施加于这些数据之上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包含了针对这些数据的授权操作,并限定数据的值只能由这些操作来观察和修改。因此,数据抽象是相对于过程抽象更为严格、更为合理的抽象方法。面向对象的程序设计就是采用数据抽象这一方法来构建程序中的类和对象的。它强调把数据和操作结合为一个不可分的系统单位——对象,对象的外部只需要知道这个对象能做什么,而不必知道它是如何做的。对象:只要仔细研究程序设计所面对的问题域——客观世界,我们就可以看到:客观世界是由一些具体的事物构成的,每个事物都具有自己的一组静态特征(属性)和一组动态特征(行为)。例如,一辆汽车有颜色、型号、马力、生产厂家等静态特征,又具有行驶、转弯、停车等动态特

征。把客观世界的这一事实映射到面向对象的程序设计

中,则把问题域中的事物抽象成了对象(Object) ,事物的静态特征(属性)用一组数据来描述,事物的动态特征(行为)则用一

组方法来刻画。因此,对象具有下述特征: (郑州北大青鸟https://www.360docs.net/doc/bc17935072.html, )(1) 对象标识:即对象的名字,是用户和系统识别它的唯一标志。例如,汽车的牌照可作为每一辆汽车对象的标识。对象标识有“外部标识” 和“内部标识” 之分。外部标识供对象的定义者或使用者用,内部标识供系统内部唯一地识别每一个对象。在计算机世界中,我们可以把对象看成计算机存储器中一块可标识的区域,它能保存固定或可变数目的数据(或数据的集合)。(2) 属性:即一组数据,用来描述对象的静态特征。例如,汽车的颜色、型号、马力、生产厂家等。在Java 程序中,把这一组数据称为数据成员。(3) 方法:也称为服务或操作,它是对象动态特征(行为)的描述。每一个方法确定对象的一种行为或功能。例如,汽车的行驶、转弯、停车等动作可分别用move( )、rotate( )、stop( ) 等方法来描述。为避免混淆,本书中把方法称为成员方法。在Java 程序中,类是创建对象的模板,对象是类的实例,任何一个对象都是隶属于某个类的。Java 程序设计是从类的设计开始的,所以,在进一步讲述对象的知识之前,必须先掌握类的

概念。类对象是对事物的抽象,而类是对对象的抽象和归纳。人类在认识客观世界时经常采用的思维方法就是把众多的事物归纳成一些类。分类所依据的原则是抽象,即抽

象出与当前目标有关的本质特征,而忽略那些与当前目标无关的非本质特征,从而找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的.在面向对象的编程语言中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合。类的概念使我们能对属于该类的全部对象进行统一的描述。例如,“树具有树根、树干、树枝和树叶,它能进行光合作用” 。这个描述适合于所有的树,从而不必对每棵具体的树都进行一次这样的描述。因此,在定义对象之前应先定义类。描述一个类需要指明下述三个方面内容:(1)类标识:类的一个有别于其他类的名字,这是必不可少的。(2)属性说明:用来描述相同对象的静态特征。(3) 方法说明:

用来描述相同对象的动态特征。

JAVA类与对象及数组习题及答案

JAV A类和对象及数组习题 一、选择题 (1)下列构造方法的调用方式中,正确的是(D )--原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。 A.按照一般方法调用B.由用户直接调用 C.只能通过new自动调用D.被系统调用 (2)在Java中,能实现多重继承效果的方式是(C )--原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。 A.内部类B.适配器C.接口D.同步 (3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number 与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。 A. 声明变量时必须指定一个类型 B. Java认为变量number与Number相同 C. Java中唯一的注释方式是"//" D. 源文件中public类可以有0或多个 (5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。

JAVA类与对象的创建

试验四 类和对象的创建 一.类的定义 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类用来定义对象的模板。 类的实现包括两部分:类声明和类体。基本格式为: 修饰符class类名[extends父类名]{ /*类体的内容*/ } 1.类声明 以下是一个类声明的例子。 class People成为类声明,People是类名。习惯上,类名的第一个字母大写,但这不是必须的。类的名字不能是Java中的关键字,要符合标识符规定,即类的名字可以由字母、下划线、数字或美元符号组成,并且第一个字母不能是数字。但给类命名时,最好遵守下列规则: (1)如果类名使用拉丁字母,那么名字的首写字母使用大写字母,如Hello、Time、People等。 (2)类名最好容易识别,当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如BeijingTi me、AmericanGame、HelloChina等。 2.类体 编写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”、“}”以及它们之间的内容称为类体,大括号之间的内容称为类体的内容。 类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。 下面是一个类名为“Trapezia”的类,类体内容的变量定义部分定义了4个float类型变量:top、bottom、h igh和laderArea,方法定义部分定义了两个方法:“getArea”和“setHigh”。

二.对象 1.对象的创建 创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1)对象的声明。 一般格式为: 类的名字对象名字; 如: 这里People是类的名字,zhubajie是我们声明的对象的名字。 (2)为声明的对象分配内存。 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(你一定还记得构造方法的名字必须和类名相同这一规定),如: 例1: 「注」如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。 2.对象的使用 对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。 通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。 例2:

Java实例对象概念图解

Java编程面向对象——类与对象的关系 面向对象是一种组件化的设计思想,OOA、OOD、OOP 类与对象是整个面向对象之中最为基础的组成单元,如果需要给划出定义:类就是共性的集合,而对象是某一个性的产物;所有类实际上是用来描述一个对象的结构。 类是通过对象来使用的,而对象是通过类来创建的。 类与对象的基本定义: 在程序中,定义类,可以使用“class 类名称{}”的语法结构完成。 而类之中的组成主要有两点: * Field (属性、成员、变量),就是一推变量的集合 * Method (方法、行为),此时的方法是由对象调用的。 这个类中定义了两个属性和一个方法(可以定义更多属性和方法) *类虽然存在,但是类的使用,必须有对象; 对象的定义格式: 声明并实例化对象: 类名称对象名称 = new 类名称(); 分步完成: 声明对象:类名称对象名称 = null; 实例化对象:对象名称 = new 类名称(); 引用数据类型: 引用数据类型最大的不同在于需要内存的开辟及使用,所以关键字new 的主要功能就是开辟内存空间; 即:只要引用数据类型想使用,就必须使用关键字new 来开辟空间。 当一个对象实例化之后就可以使用以下方式利用对象来操作类的结构: 对象.属性:表示要操作类中属性内容 对象.方法():表示要调用类中的方法内容

内存概念: 堆内存:保存每一个对象的属性内容,堆内存需要用关键字 new 才可以开辟; 栈内存:保存的是一块堆内存的地址。简单的理解,栈内存保存的是对象的名字; 编程中的栈内存和堆内存的操作过程: 引用数据的初步分析: 引用是整个 Java 开发中的核心精髓所在,即:只有掌握了“引用”这一概念之后,才能加入下一步学习,类似C/C++ 中的指针概念。 在所有的引用分析里面,最关键的还是在于关键字 “new ”,每一次使用关键字new ,都会开辟新的堆内存空间,如果你的代码里面声明两个对象,并且使用了关键字new 为两个对象分别实例化操作,那么一定是各自占有各自(独立)的堆内存空间

java类和对象的例子

1.实现简易计算器,分别实现两个整数、三个浮点数的加法运算.(用JAVA中的类和对象) 源码如下: package days;//包名自己修改 import java.util.Scanner;//注意别忘记导入这个包名了public class NumSum { public int add(int num1,int num2){ return num1+num2; } public double add(double num1,double num2,double num3){ return num1+num2+num3; } public static void main(String[] args) { // TODO Auto-generated method stub NumSum nc=new NumSum(); NumSum nc1=new NumSum();

//调用2个整数相加的方法 //Scanner是用键盘手动输入数字。 System.out.println("请用键盘手动输入两个整数:"); System.out.println(nc.add(new Scanner(System.in) .nextInt(),new Scanner(System.in).nextInt())); //调用3个浮点数相加的方法 System.out.println("请用键盘手动输入三个浮点数:"); System.out.println(nc1.add(new Scanner(System .in).nextDouble(), new Scanner(System.in).nextDouble( ), new Scanner(System.in).nextDouble())); } }

实验3 Java类与对象

实验三类与对象 一、实验目的 1、掌握类和构造方法的定义 2、理解静态和非静态成员变量的区别 3、掌握创建类实例的方法 4、理解Java中包的概念及其使用方法 二、实验要求 1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width 和height都是double型的,而color则是String类型的。要求该类具有: (1)使用构造函数完成各属性的初始赋值 (2)使用getter和setter的形式完成属性的访问及修改 提供计算面积的getArea()方法 public class mianji { private double height; private double width; private String color; public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public mianji(double width,double height,String color){ this.setColor(color); this.setHeight(height); this.setWidth(width); } public void getArea(){ double area=0; area=this.height*this.width; System.out.println("矩形的面积为"+area); } public String toString(){ String recStr="矩形的高度:"+this.getHeight() +"宽度:"+this.getWidth() +"颜色:"+this.getColor(); return recStr; } public static void main(String[] args) { mianji rec=new mianji(3, 4, "红色"); rec.getArea(); System.out.println(rec.toString());}

Java类与对象实验报告

实验报告 一、实验项目:类与对象 二、实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握类变量与实例变量,以及类方法与实例方法的区别 3. 掌握使用package和import语 三、实验器材:计算机、Java编程软件JCreator 四、实验原理(或仪器装置图): 1. 类与对象 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类声明 class 类名{ 类体 } 对象的声明 一般格式为: 类的名字对象名字; 定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。 变量名=new 类名([构造方法实参表]); 对象的使用 访问成员的基本语法形式如下: 对象名.变量成员名 对象名.方法成员名([实际参数表]) 2.成员变量和局部变量 成员变量格式:[修饰符] 变量类型变量名[=初值]; 成员方法: 格式:[修饰符] 返回值的数据类型方法名(参数1,参数2,…) { 语句序列; return[表达式]; } 类中定义的变量是成员变量,而方法中定义的变量是局部变量。 3. 构造方法 构造方法是一种特殊的方法,创建对象时被自动调用。与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。构造方法的方法名与类名相同 在构造方法中可以通过this关键字调用该类中其他的构造方法。 4.包 包是Java语言中有效地管理类的一个机制。 ①通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指明该 源文件定义的类所在的包。package语句的一般格式为:package 包名; ②import 语句:使用import 语句可以引入包中的类。 五、实验步骤及数据记录:

实验3 Java类和对象

实验3Java类和对象 一、实验目的及要求 1.掌握类的定义,熟悉属性、构造函数、方法的作用; 2.理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性; 3.掌握类的继承、方法的继承和重写,理解访问控制修饰符的作用; 4.填写实验报告(文件以“Java程序设计+ 班级+ 学号+ 姓名+ 实验3”的方式命名)。 二、实验内容 1.设计并实现一个课程类,将课程的相关信息组成该类的属性(如课程代码、课程名称、 课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。 2.运行下面的程序,写出运行结果,写出类成员属性和实例成员属性的区别。 classMyParts { public static int x = 7; publicint y = 3; } public class Test2{ public static void main(String[] args) { MyParts a = new MyParts(); MyParts b = new MyParts(); System.out.println("输出一:a.x = " + a.x); System.out.println("输出一:b.x = " + b.x); a.y = 5; b.y = 6; a.x = 1; b.x = 2; System.out.println("输出二:a.y = " + a.y); System.out.println("输出二:b.y = " + b.y); System.out.println("输出三:a.x = " + a.x); System.out.println("输出三:b.x = " + b.x); } } 回答下列问题: 1)输出一的结果是什么,它的值的来源是什么,反映了什么特性? 2)输出二的结果是什么,它的值的来源是什么,反映了什么特性? 3)输出三的结果是什么,它的值的来源是什么,反映了什么特性?

JAVA中类和对象的理解

JAVA中类和对象的理解 Java是面向对象的编程语言,哪么什么是对象?一句话,万物皆对象。只要你想得到,无论是实体,还是一些虚拟的事物,都可以称之为对象。换言之,Java作为面向对象的编程语言,意味着可以把任何形式的内容转化为编程语言进行软件开发。 先说什么是类,什么是对象,这样在进行面向对象编程中,才能有比较完备的面向对象的编程思想。 既然万物皆对象,我们编程,用编程语言来描述对象,不能为浩繁纷杂每一个对象进行相应描述,这就涉及到一个具体到抽象的过程了。其实我们的语言已经做到这一点了。我们平时说道的每一个名词,其实都是对现实世界中的一个个具体的“物体”(或称为“实体(Entity)”)相应的特征和行为抽象出来,并且将各种具有相同特征的“物体”分为一个个的“类(class)”,就是我们为每一类事物起的名字。比如:汽车、食物、狗、人这些词等等。 我们用一个具体的例子来进一步说明“类”和“对象”之间的联系与区别。以汽车为例,只要是汽车,都应该有以下一些“属性”:轮子、引擎、方向盘、刹车等等组件,可以通过一些“方法”来操作汽车,改变汽车的状态,如加速、转向、减速等,这些都是汽车的共性。具体到某辆汽车,它可能有80cm的轮子、40cm的方向盘、A6引擎,它是一个确定的实例。“汽车”这个名词就是“类”,一辆辆真实的汽车就是“汽车”这个类的实例化。 我们每天的生活、工作,无时无刻不在和“对象”打交道----衣服、食物、房子、汽车等。我们仔细想想,就会发现,当我们处理这些对象时,我们不会将这些对象的属性(对象所具有的特点)和操作分开。如我们进出“房间”时,我们不会将“房门”这个属性和“开门”这个操作分开,它们是联系在一起的。那么,面向对象编程思想力图使得程序和现实世界中的具体实体完全一致。这样,可以让程序员乃至非专业人员更好的理解程序。所以Java 语言还是很好阅读的。 类和对象是面向对象编程思想中的核心和基础。类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为“实例化”。 前面说了,类可以看做是对象的抽象,它是用来描述一组具有相同特征对象的。那么,对象中,最重要的两种特征内容,就是: 1.数据:数据就是描述对象的信息的静态信息了。比如一辆汽车,它的型号,价格,出厂日期等等,都是这个汽车对象的静态信息数据。 2.行为:行为就是这个对象可以完成的动作、操作等,是对象的动态特征。接上个例子,汽车可以启动,行驶,刹车等等,都是这辆汽车的动态特征。 通过这两方面的特征内容,基本上这个对象就可以描述清楚了。 Java中类就是完全模拟了类的特征内容。在Java类的定义规范里面,有两方面内容来对应类中的数据和行为: 1.属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态) 2.方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作) Java中类的声明语法规范(即如何定义一个标准的Java类) 语法规则:

Java类的定义及其实例化

类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。 下面通过一个简单的例子来理解Java中类的定义: 1public class Dog{ 2 String name; 3int age; 4 5void bark(){ // 汪汪叫 6 System.out.println("汪汪,不要过来"); 7 } 8 9void hungry(){ // 饥饿 10 System.out.println("主人,我饿了"); 11 } 12 } 对示例的说明:(参考网站:https://www.360docs.net/doc/bc17935072.html,/RA5iKhq) ?public 是类的修饰符,表明该类是公共类,可以被其他类访问。修饰符将在下节讲解。 ?class 是定义类的关键字。 ?Dog 是类名称。 ?name、age 是类的成员变量,也叫属性;bark()、hungry() 是类中的函数,也叫方法。 一个类可以包含以下类型变量: ?局部变量:在方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 ?成员变量:成员变量是定义在类中、方法体之外的变量。这种变量在创建对象的时候实例化(分配内存)。成员变量可以被类中的方法和特定类的语句 访问。 ?类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。 static 也是修饰符的一种,将在下节讲解。 构造方法

在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。构造方法可以在类实例化的过程中做一些初始化的工作。 构造方法的名称必须与类的名称相同,并且没有返回值。 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。 下面是一个构造方法示例: 1public class Dog{ 2 String name; 3int age; 4 5// 构造方法,没有返回值 6 Dog(String name1, int age1){ 7 name = name1; 8 age = age1; 9 System.out.println("感谢主人领养了我"); 10 } 11 12// 普通方法,必须有返回值 13void bark(){ 14 System.out.println("汪汪,不要过来"); 15 } 16 17void hungry(){ 18 System.out.println("主人,我饿了"); 19 } 20 21public static void main(String arg[]){ 22// 创建对象时传递的参数要与构造方法参数列表对应 23 Dog myDog = new Dog("花花", 3); 24 } 25 } 运行结果: 感谢主人领养了我 说明: ?构造方法不能被显示调用。 ?构造方法不能有返回值,因为没有变量来接收返回值。

第五讲 java类、对象和接口(一)

第五讲类、对象和接口(一) 1类和对象的简介 什么是类上一讲我们使用了一个String类,我们说过:类把一类对象的成员函数和方法封装起来,使用起来很方便。那么,什么是类呢?要理解类,我们先来了解“对象”的概念,因为类就是用来创建对象的模板,它包含了被创建的对象的状态描述和方法定义。 我们可以把长虹牌电视机看成是一个对象。我们不必关心电视机里面的集成电路是怎样的,也不用关心电视机的显像管的工作原理,我们只需要知道电视机的遥控器上提供了对这台电视机的什么操作,比如选台、调节色彩、声音等。这样,我们虽然不知道电视机内部是怎么工作的,但我们可以使用这台电视机。听起来这跟编程没什么关系,但面向对象的思想正是与它类似:对象,对外只提供操作该对象的方法,内部的实现对外是隐藏的。我们把这种技术叫做数据隐藏。这样,程序员不必了解一个对象内部是怎么实现的,但可以很方便地使用这个对象。 类,就是对象的模板。比如,电视机是一个类,而某一台电视机就是这个类的一个对象,也叫一个实例。 我们前面使用的String类,虽然我们不知道,也不必知道里面的实现细节,但我们只要知道他的操作方法,就可以很方便地使用它。这样,对别的程序员编写的程序,我们可以很方便地拿来使用,从而提高软件的复用程度和编程的效率。 比如,我们构造一个类:TV,然后对外提供一些对它的操作方法,选台selectChannel ()等。然后用这个类创建一个对象:TV kongKai;然后就可以这样操作这台电视:kongKai.selectChannel。 类的另一个特性,也是它的一个大好处,是继承。继承的概念类似于这样一种表达:电视是一种电器。如果我们有一个电器类,那么,我们说,电视机类继承了电器类。继承有什么好处呢?设想电器类有一些属性,比如工作电压,功率,有些一些方法,比如:打开open (),关闭:close()。这时候,如果电视类继承了电器类,电视类就自动拥有了电器类的这些属性和方法,而不用再自己重写一遍(当然,如果想重写,也可以,我们把这种技术叫做重载)。这样做有什么好处呢?最明显的好处就是减轻编程的工作量。假设我们有令一个类:VCD类,它也继承了电器类,对于打开关闭等,同样不用重新编写。 好了,既然面向对象的方法有这么多好处,我们下面就来学习类和对象的一些基本知识。 2一个例子 下面是一个完整的类的例子,我们用这个例子详细讲解类的一些用法。 class Employee { private String name; private double salary; private int hireYear; private static String company=new String("IBM"); public Employee(String n, double s, int d) { name = n; salary = s; hireYear = d; }

java的类和对象及构造方法

java 的类和对象及构造方法 类与对象的概念:程序设计所面对的问题域——客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议)。把客观世界中的事物映射到面向对象的程序设计中就是对象。对象是面向对象程序设计中用来描述客观事物的程序单位。客观世界中的许多对象,无论其属性还是其行为常常有许多共同性,抽象出这些对象的共同性便可以构成类。所以,类是对象的抽象和归纳,对象是类的实例。抽象原则所谓抽象(abstraction),就是从被研究对象中舍弃个别的、非本质的、或与研究主旨无关的次要特征,而抽取与研究工作有关的实质性内容加以考察,形成对所研究问题正确的、简明扼要的认识。例如,“马”就是一个抽象的概念,实际上没有任何两匹马是完全相同的,但是我们舍弃了每匹马个体之间的差异,抽取其共同的、本质性的特征,就形成了“马”这个概念。抽象是科学研究中经常使用的一种方法,是形成概念的必要手段。在计算机软件开发领域,抽象原则的运用非常广泛,概括起来,可分为过程抽象和数据抽象两类。 过程抽象过程抽象是指:软件开发者可以把任何一个完成确定功能的操作序列都看作是一个单一的实体,尽管它实际上可能是由一系列更低级的操作完成的。运用过程抽象,软件

开发者可以把一个复杂的功能分解为一些子功能(模块),如果子功能仍比较复杂,则可以进一步分解。这使得开发者可以在不同的抽象层次上考虑问题,在较高层次上思考时可以不关心较低层次的实现细节。面向过程的程序设计采用的是过程抽象方法。使用过程抽象有利于控制、降低整个程序的复杂度,但是,这种方法允许在全系统的范围内进行功能的描述,本身自由度大,难于规范化和标准化,不易保证软件的质量,而且操作起来也有一定难度。数据抽象:数据抽象把系统中需要处理的数据和施加于这些数据之上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包含了针对这些数据的授权操作,并限定数据的值只能由这些操作来观察和修改。因此,数据抽象是相对于过程抽象更为严格、更为合理的抽象方法。面向对象的程序设计就是采用数据抽象这一方法来构建程序中的类和对象的。它强调把数据和操作结合为一个不可分的系统单位——对象,对象的外部只需要知道这个对象能做什么,而不必知道它是如何做的。对象:只要仔细研究程序设计所面对的问题域——客观世界,我们就可以看到:客观世界是由一些具体的事物构成的,每个事物都具有自己的一组静态特征(属性)和一组动态特征(行为)。例如,一辆汽车有颜色、型号、马力、生产厂家等静态特征,又具有行驶、转弯、停车等动态特

Java 对象和类

Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: ?多态 ?继承 ?封装 ?抽象 ?类 ?对象 ?实例 ?方法 ?重载 本节我们重点研究对象和类的概念。 ?对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 ?类:类是一个模板,它描述一类对象的行为和状态。 下图中男孩女孩为类,而具体的每个人为该类的对象:

Java中的对象 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。 对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类 类可以看成是创建Java对象的模板。 通过下面一个简单的类来理解下Java中类的定义:

一个类可以包含以下类型变量: ?局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 ?成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。 ?类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。 一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog类的方法。 构造方法 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。 下面是一个构造方法示例:

Java面向对象习题

选择题 1、下列关于变量的叙述哪个是错的?() A. 实例变量是类的成员变量。 B. 在方法中定义的局部变量在该方法被执行时创建。 C. 实例变量用关键字static声明。 D. 局部变量在使用前必须被初始化。 2、在Java语言中,下列哪个包是编译器自动导入的?() A. java.applet B. https://www.360docs.net/doc/bc17935072.html,ng C. java.io D. java.awt 3、当类的成员未用访问权限修饰符时,Java认为此成员的访问权限为()。 A. private B. protected C.friendly D.public 4、下面哪个关键字不是用来控制对类成员的访问的?() A. public B. protected C. default D. private 5、下面哪一个特性不是面向对象编程主要体现的()。 A. 封装性 B. 继承 C. 多态 D. 类 6、不允许作为类及类成员的访问控制符的是()。 A. public B. private C. static D. protected 7、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为()。 A、static void method( ) B、public void method( ) C、final void method( ) D、abstract void method( ) 8、可以在下面代码段point x处写入的是?() //point x public class Interesting{ //do something } A. String str; B. static int PI=3.14; C. public class MyClass{//do other thing…} D. import java.awt.*; 9、下列关于变量的叙述哪个是错的?() A、实例变量是类的成员变量。 B、在方法中定义的局部变量在该方法被执行时创建。 C、实例变量用关键字static声明。 D、局部变量在使用前必须被初始化。 10、下列哪个类声明是正确的?() A、abstract final class HI{} B、abstract private move(){} C、protected private number; D、public abstract class Car{}

Java类及对象实验报告

西安邮电大学 (计算机学院) 课实验报告 实验名称:类与对象 专业名称:计算机科学与技术 班级:计科1405班 学生:高宏伟 学号:04141152 指导教师:霞林 实验日期:2016.9.29

一、实验目的 通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法。 二、实验要求 1.编写一个创建对象和使用对象的方法的程序。 2.编写一个包含类成员和示例成员的程序。 3.编写一个使用Java包的程序。 三、实验容 (一)三角形、梯形和圆形的类封装 ?实验要求: 编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下: a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle 类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个 boolean型的属性,该属性用来判断三个属能否构成一个三角形。 b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积 的功能。 c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、 面积的功能。 ?程序模板:

AreaAndLength.java class Trangle { double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) { this.sideA=a; //【代码1】参数a,b,c分别赋值给sideA,sideB,sideC this.sideB=b; this.sideC=c; if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB) //【代码2】a,b,c构成三角形的条件表达式 { boo=true;//【代码3】给boo赋值。 } else { boo=false;【代码4】//给boo赋值。 } } double getLength() { return sideA+sideB+sideC;【代码5】//方法体,要求计算出length的值并返回 } public double getArea() { if(boo) { double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ; return area; } else { System.out.println("不是一个三角形,不能计算面积"); return 0; } } public void setABC(double a,double b,double c) { this.sideA=a; this.sideB=b; this.sideC=c; //【代码6】参数a,b,c分别赋值给sideA,sideB,sideC

java类与对象的创建

试验四 类和对象的创建 一. 类的定义 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类用来定义对象的模板。 类的实现包括两部分:类声明和类体。基本格式为: 修饰符class 类名[extends 父类名] { /*类体的内容*/ } 1. 类声明 以下是一个类声明的例子。 class People成为类声明,People是类名。习惯上,类名的第一个字母大写,但这不是必须的。类的名字不能是Java中的关键字,要符合标识符规定,即类的名字可以由字母、下划线、数字或美元符号组成,并且第一个字母不能是数字。但给类命名时,最好遵守下列规则: (1) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母,如Hello、Time、People等。 (2) 类名最好容易识别,当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如BeijingTi me、AmericanGame、HelloChina等。 2. 类体 编写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”、“}”以及它们之间的内容称为类体,大括号之间的内容称为类体的内容。 类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。 下面是一个类名为“Trapezia”的类,类体内容的变量定义部分定义了4个float类型变量:top、bottom、h igh和laderArea,方法定义部分定义了两个方法:“getArea”和“setHigh”。

二. 对象 1. 对象的创建 创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1) 对象的声明。 一般格式为: 类的名字对象名字; 如: 这里People是类的名字,zhubajie是我们声明的对象的名字。 (2) 为声明的对象分配内存。 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(你一定还记得构造方法的名字必须和类名相同这一规定),如: 例1:

java类和对象练习题电子教案

j a v a类和对象练习题

1.在如下所示的JAVA代码中,this关键字是指(B)。 public class Person{ private String name; public void setName(String name){ https://www.360docs.net/doc/bc17935072.html,=name; } }(选择一项) (选择一项) A) Person类 B) Person类自身对象的引用 C) setName()方法的参数name D) setName()方法 2.以下对于JAVA中构造方法说法正确的是(C). (选择一项) A) 构造方法的名字可以与类名不一致 B) 构造方法不能被重载 C) 一个类必须包含至少一个构造方法 D) 构造方法可以有返回值类型 3.以下关于JAVA中的构造方法表述错误的是(B)。 (选择一项) A) 构造方法的名字和类名相同 B) 构造方法不能被重载 C) 构造方法的作用主要是在创建对象时执行一些初始化操作 D) 构造方法没有返回值类型 4.以下关于java中的方法重载说法错误的是(D)。 (选择一项) A) 重载的方法其方法名必须相同 B) 重载的方法其参数个数或参数类型不同 C) 构造方法可以被重载 D) 成员方法不可以被重载 5.在如下所示的Sample类中,共有( C)个构造方法 public class Sample{ private int x; private Sample(){ x=1; }

public void Sample(double f){ this.x=(int)f; } public Sample(String s){ } } (选择一项) A) 4 B) 3 C) 2 D) 1 6.构造方法重载的要素不包括(B) (选择一项) A) 方法名与类名相同 B) 返回值类型不同 C) 参数列表不同 D) 在同一个类中 7.给定如下JAVA代码,编译运行,结果将是(B) public class Sample{ public double result(double d1,double d2){ return d1

JAVA面向对象实例

1、猜数字游戏:一个类A有一个成员变量v,有一个初值100。 定义一个类,对A类的成员变量v进行猜。 如果大了则提示大了,小了则提示小了。等于则提示猜测成功。 class A { int v=100; public String AA(int v){ if(v==this.v){ return("恭喜你猜对了!"); }else if(v

JAVA类与对象及数组习题及答 案

JAVA类和对象及数组习题 一、选择题 (1)下列构造方法的调用方式中,正确的是( D )--原因:在通过new 实例化一个类对象时系统会自动调用该类相应的构造方法。 A.按照一般方法调用 B.由用户直接调用 C.只能通过new自动调用 D.被系统调用 (2)在Java中,能实现多重继承效果的方式是( C )--原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。A.内部类 B.适配器 C.接口 D.同步 (3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。  A. 声明变量时必须指定一个类型  B. Java认为变量number与Number相同  C. Java中唯一的注释方式是"//"  D. 源文件中public类可以有0或多个 (5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。 A. 父类不能替代子类 B. 子类能够替代父类 C. 子类继承父类 D. 父类包含子类 (6)下列代码中,将引起编译错误的行是( B )—原因:定义float型变量并对其初始化时,其值后面要加一个f. 1)public class Exercise{ 2) public static void main(String args[]){ 3) float f=0.0; 4) f +=1.0; 5) }

相关文档
最新文档