iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java 类基础(转)
  • 418
分享到

java 类基础(转)

2023-06-03 05:06:52 418人浏览 薄情痞子
摘要

java 类基础(转)[@more@]类是Java 的核心和本质。它是Java 语言的基础,因为类定义了对象的本性。既然类是面向对象程序设计Java 语言的基础,因此,你想要在Java 程序中实现的每一个概念都必须封装在类以内。因为类是Ja

java 类基础(转)[@more@]类是Java 的核心和本质。它是Java 语言的基础,因为类定义了对象的本性。既然类是面向对象程序设计Java 语言的基础,因此,你想要在Java 程序中实现的每一个概念都必须封装在类以内。

因为类是Java 的基础,所以在本章和以后几章中对其进行介绍。本章将介绍类的基本元素,并学习如何运用类来创建对象。同时也将学习方法、构造函数及this 这个关键字。
从本书的开始我们就使用类了。当然,使用的都是非常简单的类。在前面几章中创造的类主要都包含在main( ) 方法中,用它来表明Java 句法的基础。你将看到,类的功能实质上比你到目前为止看到的要强大得多。

也许理解类的最重要的事情就是它定义了一种新的数据类型。一旦定义后,就可以用这种新类型来创建该类型的对象。这样,类就是对象的模板(template ),而对象就是类的一个实例(instance)。既然一个对象就是一个类的实例,所以你经常看到object 和instance 这两个词可以互换使用。

6.1.1 类的通用格式
当你定义一个类时,你要声明它准确的格式和属性。你可以通过指定它包含的数据和操作数据的代码来定义类。尽管非常简单的类可能只包含代码或者只包含数据,但绝大多数实际的类都包含上述两者。你将看到,类的代码定义了该类数据的接口。

使用关键字class来创建类。在这一点上,类实际上被限制在它的完全格式中。类可以(并且常常)是一个组合体。类定义的通用格式如下所示:

class classname {

type instance-variable1;

type instance-variable2;

// ...

type instance-variableN;

type methodname1(parameter-list) {

// body of method

}

type methodname2(parameter-list) {

// body of method

}

// ...

type methodnameN(parameter-list) {

// body of method
}
}

在类中,数据或变量被称为实例变量(instance variables ),代码包含在方法(methods)内。定义在类中的方法和实例变量被称为类的成员(members )。在大多数类中,实例变量被定义在该类中的方法操作和存取。这样,方法决定该类中的数据如何使用。

定义在类中的变量被称为实例变量,这是因为类中的每个实例(也就是类的每个对象) 都包含它自己对这些变量的拷贝。这样,一个对象的数据是独立的且是惟一的。关于这一点我们将马上讨论,但是这是一个重要的概念,因此要早一点学习。

所有的方法和我们到目前为止用过的方法main() 的形式一样。但是,以后讲到的方法将不仅仅是被指定为static或public 。注意类的通用格式中并没有指定main() 方法。Java 类不需要main( ) 方法。main() 方法只是在定义您程序的起点时用到。而且,Java 小应用程序也不要求main( ) 方法。

注意:如果你有c++编程经验请注意,类的声明和方法的实现要存储在同一个地方并且不能被单独定义。由于所有类的定义必须全部定义在一个单个的源文件中,这有时会生成很大的.java 文件。在Java 中设计这个特征是因为从长远来说,在一个地方指明,定义以及实现将使代码更易于维护。

6.1.2 一个简单的类
让我们先从一个简单的例子来开始对类的研究。下面定义了一个名为box 的类,它定义了3个实例变量:width,height 和depth 。当前,box类不包含任何方法(但是随后将增加一些)。

class Box { double width; double height; double depth;

}

前面已经说过,一个类定义一个新的数据类型。在本例中,新的数据类型名为Box。你可以使用这个名字来声明Box 类型的对象。记住类声明只是创建一个模板(或类型描述),它并不会创建一个实际的对象。因此,上述代码不会生成任何Box 类型的对象实体。

要真正创建一个Box 对象,你必须使用下面的语句:

Box mybox = new Box(); // create a Box object called mybox

这个语句执行后,mybox 就是Box的一个实例了。因此,它将具有“物理的”真实性。现在,先不必考虑这个语句的一些细节问题。

每次你创建类的一个实例时,你是在创建一个对象,该对象包含它自己的由类定义的每个实例变量的拷贝。因此,每个Box对象都将包含它自己的实例变量拷贝,这些变量即width,height,和 depth 。要访问这些变量,你要使用点号“.”运算符。点号运算符(dot operator)将对象名和成员名连接起来。例如,要将mybox 的width 变量赋值为100,使用下面的语句:

mybox.width = 100;
该语句告诉编译器对mybox 对象内包含的width 变量拷贝的值赋为100 。通常情况下,你可以使用点号运算符来访问一个对象内的实例变量和方法。下面是使用Box 类的完整程序:


class Box {

double width; double height; double depth;

}

// This class declares an object of type Box.
class BoxDemo {

public static void main(String args[]) {
Box mybox = new Box();
double vol;

// assign values to mybox's instance variables
mybox.width = 10;
mybox.height = 20;
mybox.depth = 15;

// compute volume of box
vol = mybox.width * mybox.height * mybox.depth;

System.out.println("Volume is " + vol);
}
}

你应该把包含该程序的的文件命名为BoxDemo.java,因为main( ) 方法在名为 BoxDemo 的类中,而不是名为Box 的类中。当你编译这个程序时,你会发现生成了两个“.class ”文件,一个属于box,另一个属于BoxDemo 。Java 编译器自动将每个类保存在它自己的“ .class ”文件中。没有必要分别将Box 类和Boxdemo 类放在同一个源文件中。你可以分别将它们放在各自的文件中,并分别命名为Box.Java 和 BoxDemo.java 。

要运行这个程序,你必须执行BoxDemo.class 。运行该程序后,你会看见如下输出:

Volume is 3000.0

前面已经讲过,每个对象都含有它自己的、由它的类定义的实例变量的拷贝。因此,假设你有两个Box对象,每个对象都有其自己的depth,width 和height 拷贝。改变一个对象的实例变量对另外一个对象的实例变量没有任何影响,理解这一点是很重要的。例如,下面的程序定义了两个Box 对象:

// This program declares two Box objects.

class Box { double width; double height;
double depth;
}

class BoxDemo2 {

public static void main(String args[]) {
Box mybox1 = new Box();
Box mybox2 = new Box();
double vol;

// assign values to mybox1's instance variables
mybox1.width = 10;
mybox1.height = 20;
mybox1.depth = 15;


mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;

// compute volume of first box
vol = mybox1.width * mybox1.height * mybox1.depth;
System.out.println("Volume is " + vol);

// compute volume of second box
vol = mybox2.width * mybox2.height * mybox2.depth;
System.out.println("Volume is " + vol);

}
}

该程序产生的输出如下所示:

Volume is 3000.0
Volume is 162.0

你可以看到,mybox1 的数据与mybox2 的数据完全分离。

--结束END--

本文标题: java 类基础(转)

本文链接: https://www.lsjlt.com/news/232977.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • java 类基础(转)
    java 类基础(转)[@more@]类是Java 的核心和本质。它是Java 语言的基础,因为类定义了对象的本性。既然类是面向对象程序设计Java 语言的基础,因此,你想要在Java 程序中实现的每一个概念都必须封装在类以内。因为类是Ja...
    99+
    2023-06-03
  • 【Java 基础篇】Java 类型转换
    文章目录 导言一、隐式类型转换1. 整型隐式类型转换2. 浮点型隐式类型转换3. 字符型隐式类型转换4. 布尔型隐式类型转换 二、显式类型转换1. 整型显式类型转换2. 引用数据类型显式...
    99+
    2023-09-22
    java 开发语言
  • Java 基础——Scanner 类
    目录 1.概述2.使用举例2.1.从不同的输入源读取数据2.2.next() 和 nextLine() 的区别2.3.读取大小已知的一维数组2.4.读取大小未知的一维数组2.5.读取长度大小已...
    99+
    2023-09-06
    Java Scanner 输入输出
  • 【Java基础】java中Long与String类型相互转换
    一、Long类型 转 String类型 Long 转 String 两种方法: 1:String str = String.valueOf(Long val); 2:String str = Long.toString(Long val);...
    99+
    2023-08-20
    java
  • Java基础-设计一个Java类所需的方法(转)
    Java基础-设计一个Java类所需的方法(转)[@more@](1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:ThisIsAClass...
    99+
    2023-06-03
  • Java基础-Java基本数据类型
    目录1 前言2 布尔类型3 字符类型4 值类型4.1 byte4.2 short4.3 int4.4 long4.5 float4.6 double5 码农来洞见5.1 类型转换5....
    99+
    2022-11-12
  • java 继承的基础(转)
    java 继承的基础(转)[@more@]继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类。运用继承,你能够创建一个通用类,它定义了一系列相关项目的一般特性。该类可以被更具体的类继承,每个具体的类都增加一些自己特有的东西。在J...
    99+
    2023-06-03
  • Java基础——类和对象
    目录 一、类和对象的基本概念 二、类与对象的定义与使用 1.创建类的语法: 2. 创建具体的对象:  3.范例(创建一个Person 类的对象)  三、static关键字   (一)static修饰属性(类属性、类变量) (二)static...
    99+
    2023-10-05
    java
  • Java基础之包装类
    目录一、java的包装类二、Integer包装类2.1Integer类的基本介绍2.2Integer类的属性2.3 Integer类的构造器三、自动装箱和自动拆箱四、Int...
    99+
    2022-11-12
  • python基础之类型转换函数
    类似于and操作 类似于or操作 # 类型转换 # sorted li=[2,45,1,67,23,10] li.sort() #list的排序方法 p...
    99+
    2022-11-12
  • Java基础之Object类详解
    object类的介绍 object是所有类的直接父类或者是间接父类,为什么这么说呢? 可以查询java8的API帮助文档: 可见在这样的一个类树中,所有的类的根还是Object类 ...
    99+
    2022-11-12
  • Java抽象类(基础详解)
    目录 1.概念 2.抽象类的使用 2.1抽象方法 2.2抽象类 2.3抽象类的使用 2.4注意事项 1.概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法,普通方法,static方法,常量和变量等内容...
    99+
    2023-10-21
    java 开发语言
  • Java中的类(基础详解)
    文章目录 可以有多个类,但只能有一个public类类 = 字段+方法类的构造函数我们没写构造函数的时候如果我们自己写了构造函数构造函数中 this 的使用 类的修饰符 / 控制符第一...
    99+
    2023-09-01
    java jvm c++
  • JAVA基础类库之String类,StringBuffer类和StringBuilder类
    目录引言String类String类构造方法 String常用方法:简单介绍的方法详细介绍的方法StringBuffer/StringBuilder常用方法StringBu...
    99+
    2022-11-12
  • C#预定义的基础类型转换
    一、BitConverter 将预定义的基础类型与字节数据进行互转(Unicode) 1、将值类型转成字节数组(Unicode):BitConverter.GetBytes() by...
    99+
    2022-11-13
  • Java基础类之ArrayUtils工具类详解
    目录1、引入pom依赖2、ArrayUtils中的方法:3、举例总结1、引入pom依赖 <!-- https://mvnrepository.com/artifact/o...
    99+
    2022-11-12
  • Java基础09 类数据与类方法
    我们一直是为了产生对象而定义类(class)的。对象是具有功能的实体,而类是对象的类型分类。这是面向对象的一个基本概念。在继承(inheritance)中,我们将类当做可以拓展的主体,这提高了我们对“类”的认识。类本身还有许多值得讨论的地方...
    99+
    2023-06-02
  • Java基础入门语法--String类
    目录一、定义方式二、内存三、字符串比较相等四、字符串常量池五、理解字符串不可变六、字符、字节、字符串七、字符串的常见操作八、StringBuffer 和 StringBuilder(...
    99+
    2022-11-12
  • Java 基础--Arrays工具类详解
    目录1、数组转换成字符串2、数组转换成集合(1)asList(2)stream 流操作(3)Collections.addAll()3、对数组进行升序排列4、判断数组是否相等5、所有...
    99+
    2022-11-12
  • 【Java基础】线程同步类 CountDownLatch
    ​ 关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览2.1 作用2.2 使用场景2.3 ...
    99+
    2023-08-16
    java 开发语言 android 面试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作