当前位置:首页 » 编程语言 » java类的结构

java类的结构

发布时间: 2023-06-09 19:33:50

㈠ 请问java中的类是什么意思

Java创建一个类的关键字为class,基本语法格式为public class ClassName{};在开发中,通常类的名字首字母大写。类中包含了类的特定属性,比如我们创建一个动物类,动物有自己的属性名字,年龄等属性特点,我们创建好动物这个类之后,当需要一个动物的时候,就去创建一个动物的对象,之后使用这个具体的对象进行操作就可以。创建对象的关键字是new,基本语法为 ClassName objectName = new ClassName();
在Java中类的构造函数包含有参构造函数和无参构造函数,默认如果不在类中写构造函数,默认有一个无参的构造函数,当创建一个对象的时候,默认使用的就是这个构造函数。
如果需要在创建对象的时候就将对象的属性值设置好,就需要一个有参构造函数,在创建对象的时候,将参数传入即可。如果创建一个有参的构造函数,那么默认的无参构造函数将会被覆盖,如果还需要一个无参构造函数,则需要手动重写一个无参构造函数。
Java类可以被继承,子类会继承父类的一些属性值,但是子类也可以有自己的一些特定属性,小狗(子类)属于动物(父类),有动物这个种类的所有属性,但是小狗也有属于自己的特性。在开发中我们会将具有某些基本属性的归为一类,如果另一个类也有这些属性,而且它还有属于自己的特性,可以将子类继承于父类,这样子类就包含了父类所有的属性。
Java类的继承关键字是extends,基本语法为: public class ChiledClass extends ParentClass{};
在子类中,有时候虽然继承了父类的属性值,但是有时候,我们需要子类中的该属性值有自己的特点,这时候,我们可以重写父类的属性方法,将该属性设置为我们需要的值,这样虽然子类继承于父类,但是也有自己的独特性。
在开发中,我们通常会将类的属性设置为私有的,这样外部就不会随意访问到这个属性。但是为了让外部能够访问该属性值,我们通常使用 set和get方法去设置和获取该属性值,这样如果开发中不想让别人随意修改该属性,可以将set方法去掉,只留下get方法,这样这个属性就只可以访问而不可以修改,很好的保护的这个属性值,不让别人去随意修改。

㈡ java工作原理

Java工作原理
由四方面组成:

(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。

㈢ JAVA数据结构有哪几种

JAVA数据结构有以下几种:

1、List:

List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下 >标)来访问List中的元素,这类似于Java的数组。

2、Vector:

基于数组(Array)的List,其实就是封装了数组所不具备的一些功能方便我们使用,所以它难易避免数组的限制,同时性能也不可能超越数组。

另外很重要的一点就是Vector是线程同步的(sychronized)的,这也是Vector和ArrayList 的一个的重要区别。

3、ArrayList:

同Vector一样是一个基于数组上的链表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector好一些,但是当运行到多线程环境中时,可需要自己在管理线程的同步问题。

4、LinkedList:

LinkedList不同于前面两种List,它不是基于数组的,所以不受数组性能的限制。 它每一个节点(Node)都包含两方面的内容:节点本身的数据(data),下一个节点的信息(nextNode)。

所以当对LinkedList做添加,删除动作的时候就不用像基于数组的ArrayList一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了,这是LinkedList的优势。

5、HashSet:

虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。

但是Set则是在 HashMap的基础上来实现的,这就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。

6、HashMap:

基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

7、HashTable:

Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。

Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为nul

㈣ 介绍下Java程序的结构

Java语言是面向对象的程序设计语言,Java程序的基本组成单元是类,类体中又可包括属性与方法两部分。而每一个应用程序都必须包含一个main()方法,含有main()方法的类称之为主类。


一: Java程序的主类及其格式

作为一个可以独立运行的Java程序,在它的众多类中必须要有一个类作为程序的起始类,为了方便,本书把这个类称为主类。当需要执行一个程序时,人们在java命令后面输入的便是这个主类的文件名(也是主类名),因此主类文件是Java运行环境建立起来之后第一个被装入虚拟机的用户文件。为了使虚拟机可以找到程序运行的起始入口,主类必须为public类,并含有一个在格式上符合约定的入口方法main(),其格式如下:

public static void main(String[] args){

}

其中各参数含义如下。

main:入口方法名称。

args:命令行参数,这是一个String对象数组。

static:修饰字,说明main()是一个静态方法(类方法)。

public:修饰字,说明main()具有公有访问属性。

于是,主类框架的源代码如下:

public class 主类名{

public static void main(String[] args){

}

}

Java程序的主类常常使熟悉C/C++的读者感到迷惑:main()方法不就相当于C/C++程序中的主函数吗,为什么非得把它放到一个类里,难道它有什么不同吗?

没错,Java类中main()方法就相当于C/C++程序中的主函数,是一个入口函数。之所以把它封装到一个类里,而不像C/C++那样单独作为一个函数来处理,就本书作者的理解,大概Java的设计者们有如下几个方面的考虑。

1)Java既然把所有事物都看成了对象,那么就没有理由不把程序也看成对象,因为程序也是一种事物。既然是对象,那么它就应该属于某个类并以程序名来命名。既然程序是一种类,那么main()就应该是这个类的一个方法,只不过它有些特殊,它是一个入口方法,并且对它有些特殊规定,例如其名称必须为main(),必须是公有静态方法,有命令行参数等。

2)如果把程序封装成了类,那么包括本程序在内的任何程序就都可以根据需要,随时创建这个类的对象,并通过该对象使用这个类中的资源,这样就便于资源共享,从而提高程序的灵活性。

3)Java程序是一种以类为基本单位的模块化程序,程序被编译后,每一个类会对应生成一个二进制字节码类文件。如果把程序也封装成类,那么它的文件就与其他类文件统一起来,而不会产生其他类型的文件,因而便于管理。

4)之所以把入口方法封装到类中,其根本目的就是要尽可能平等地看待所有的类。因为Java的最终目的是要以类为基本模块来实现可装配软件,如果把main()方法封装到了一个类中,那么就意味着main()与类的其他方法没什么本质区别,只不过是分工不同而已。下面很快就会看到,Java的所有类都可以含有一个入口方法而成为主类。也就是说,在Java程序中根本就没有主类、次类之分,这里之所以把带有main()方法的类称为主类,是为了表达方便。


二: JAVA源程序在命令行下的运行

classBank{
publicvoidinit(){
System.out.println("Yes,Ican");
}
publicstaticvoidmain(Stringargs[]){
BankAccountba1=newBankAccount(100.00);
System.out.print("Beforetransactions,");
ba1.display();
ba1.deposit(74.35);
ba1.withdraw(20.00);
System.out.print("Aftertransactions,");
ba1.display();
Bankb=newBank();
b.init();
}
}
classBankAccount{
privatedoublebalance;
publicBankAccount(doubleopeningBalance){
balance=openingBalance;
}
publicvoiddeposit(doubleamount){
balance+=amount;
}
publicvoidwithdraw(doubleamount){
balance-=amount;
}
publicvoiddisplay(){
System.out.println("balance="+balance);
}
}

三:完整的java源程序应该包括下列部分

package语句;

import语句;

public classDefinition; // 公共的类定义部分,至多只有一个公共类的定义

// java语言规定该java源程序的文件名必须与该公共类名完全一致

classDefinition; // 类定义部分,可以有0个或多个

interfaceDefinition; // 接口定义部分,可以有0个或多个

package:java编译器为每个类生成一个字节码文件,且文件名与类名相同,这就会带来一个问题:同名的类会发生冲突。package便可管理类命名空间。

一般地,具有相同功能的类放在一个package中。

一个java源程序至多只能有一个公共类的定义。

若java源程序有一个公共类的定义,则该源文件名字必须与该公共类的名字完全相同。

若源程序中不包含公共类的定义,则该文件名可以任意取名。

若一个源程序中有多个类定义,则在编译时将为每个类生成一个。class文件。

三。java编程规范

包名:全小写的名词,中间可由点分割,eg:java.awt.event

类名:首字母大写,多个单词合成,每个单词首字母也要大写,eg: class HelloWorldApp

接口名: 同类名,eg: interface Collection

方法名: 由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,eg: balanceAccount, isButtonPressed

变量名: 全小写,一般为名词,eg: length

常量名: 基本数据类型的常量名为全大写,如果由多个单词构成,可以用下划线隔开,eg: int YEAR, int WEEK_OF_MONTH

对象类型的常量,则是小写混合,由大写字母把单词隔开

㈤ java的类是什么意思

使用Java语言意味着面向对象的编程。所以,你必须要学会如何创建、引用和继承已建立的类。
Java的结构是基于面向对象思想的。除了那些最基本的类型如整数、单精度浮点数之外的其它成分,均是以类的形式出现的。正是由于Java的面向对象特性,所以它能给用户提供一种具有良好的可扩充性的编程环境,并使得程序员可以充分利用别的程序员的成果,而不必重复以前的工作。
学习完本章后,你应该是已经可以轻松地创建自己的类,并能引用和继承已有的类,这将不公使你有能力去编写更简捷更有效的代码,同时也是进一步学习Java所必需的。

定义类的结构

每个对象都是属于某种type(即类型、类别或者种类),例如“作者”这个“对象”或者“物体”就属于“人类”这个类别,拖鞋属于“鞋类”等等。再Java中,用type的同义词class表示类型,中文术语译为“类”。

■ 类的基本概念
■ 类的基本组成
■ 类的实例创建

类的成员函数的说明与使用

我们把属性和方法成为这个对象的“成员”,因为它们构成一个对象的主要部分,没有了这两样东西,那么对象也没有什么存在的意义了。哪怕只是一粒石头,或许它没有什么操作的方法,但是也有描述它的属性。真的存在没有属性和方法的类,不过它产生出来的对象规则,然后遵守这个规则的对象,才能去做某些特定的事情。

■ 类的成员函数的说明
■ 不同类型的成员函数
■ 成员函数的重载
■ 静态成员
■ 构造和析构成员函数

建立Java的应用程序

只要类中有一个名为main的方法,那么这个类就可以成为一个能够被JVM调用运行的 Java Application。 不过这个方法有四个必要的声明条件:
1. 声明为public;
2. 必须是类一级的(static) ;
3. 没有返回值(viod);
4. 只有一个String类型的数组当作参数。
这四个条件缺一不可。

■ main成员函数
■ 命令行参数
■ 轻松处理命令行参数

类的集合 — 包

■ 理解包(package)的基本概念
■ 定义一个包
■ 引用已定义过的包

类的深入研究

■ 在Java中使用继承
■ 成员函数的重载
■ 使用接口
■ 类的转换
■ null,this和supper变量

热点内容
和平精英安卓版怎么调成中文 发布:2025-02-13 22:16:10 浏览:36
混沌起源需要什么配置玩 发布:2025-02-13 22:14:33 浏览:277
vs引入文件夹 发布:2025-02-13 22:05:52 浏览:127
安卓手机如何调无限电量 发布:2025-02-13 22:05:50 浏览:113
phppost长度 发布:2025-02-13 22:05:45 浏览:626
烈火战神源码 发布:2025-02-13 22:04:51 浏览:619
源码猫交易 发布:2025-02-13 22:04:49 浏览:756
广告脚本镜头 发布:2025-02-13 22:04:48 浏览:986
安卓手机哪个app自拍更真实 发布:2025-02-13 22:00:19 浏览:194
安卓系统密码忘了怎么办 发布:2025-02-13 21:49:28 浏览:972