栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA学习笔记(类的学习)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA学习笔记(类的学习)

JAVA学习笔记(类的学习)
  • 类声明和类体
  • 构造方法和对象创建
  • 对象的引用和实体
  • 成员变量
  • 方法
  • 方法重载
  • 关键字this
  • import语句
  • 访问权限
  • 对象数组
  • 反编译和文档生成器
  • JAR文件
      • 1.使用当前应用程序所在目录中没有包名的类可以直接加载使用
      • 2.使用Java运行程序所在目录中的类
      • 3.使用应用程序当前目录的子目录中的类
      • 4.使用Java运行环境拓展中的类

类声明和类体
类是组成Java程序的主要元素,封装了类对象的状态和方法。类是用来定义对象的模板。类由两部分组成:类声明和类体。基本格式如下:
class 类名{
类体

}
类体的构成
类体内容有两个成员:成员变量和方法。
通过变量声明定义的变量,称为成员变量或域,用来刻画累的创建对象的属性。
例如

构造方法和对象创建

类中有一部分方法成为构造方法,构造方法攻擂创建对象,用来给出类的对象的初始状态。构造方法是一种特殊的方法,构造方法的方法名必须与他所在类的类名相同。,Java允许有若干个构造方法,但是这些方法的参数必须不同。如果没有构造方法,会默认生成一个无参的构造方法。
对象声明的格式:类的名字 对象名字;例如:

创建对象会实现下述两件事:(1)为成员变量分配空间,然后执行构造方法中的语句(2)给出一个信息确保这些变量是属于对象的。
创建对象就是之为它分配成员变量,并获得一个引用,对象是一种类型变量,属于引用型变量,类似于C语言的指针。
对象的使用:对象不仅可以操作自己的变量改变状态,还拥有了使用创建类中的方法的能力,对象通过是哦用这些方法可以产生一定的行为。通过使用运算符“,”,对象可以实现对自己的变量访问和方法的调用。

对象的引用和实体

当类创建一个对象时,成员变量被分配内存空间,这些内存空间被称为该对象的实体或变量,。对象中存放着引用,以确保这些变量由该对象操作使用,因此,如,18果两个对象有相同的引用,就具有同样的实体。例
t1=new Lader1(11,22,18);
t2=new Lader2(6,12,18);
若使用t1=t2他把t2引用赋给了t1,那么系统取消原来分配实体t1的实体,此时两个对象有相同的引用。
Java具有“垃圾收集”机制,Java的运行环境周期的检测某个实体是否已不再被任何对象引用,如果发现这样对的实体,就释放实体占有的内存。

成员变量

1.类变量和实例变量
类体的内用有两个变量:成员变量和类变量,成员变量用来刻画类创建的对象的属性,其中一部分称为实例变量,另一部分称为静态变量或类变量。 用关键字static修饰的称为类变量,没有使用static修饰的称为实例变量。
类变量是与类相关联的数据变量,也就是说类变量是与该类所创建的所有对象相关联的变量。因此类变量不仅可以通过摸个对象访问,也可以直接通过类名访问。
实例变量仅仅是与对应的对象相关联的变量。也就是说,不同的对象的实例变量互不相同,即分配不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的相应实例变量。实例变量必须通过对象访问。
例:


2.常量
如果一个成员变量修饰为final,就是常量,敞亮的名字习惯用大写字母。final修饰的成员变量不占用内存,意味着在声明final成员变量死必须初始化,对于final修饰的成员变量,变量可以操作,但不能进行更改操作。

方法

方法分为构造方法,实例方法和类方法,构造方法供类创建对象时使用。类缩创建的对象可以调用实例方法和类方法形成一定的算法,体现对象具有的一定功能。
1.方法声明和方法体
最基本的方法声明包括方法名和方法的返回类型,返回类型也简称方法的类型。
例:float area(){

}
方法体的内容包括变量的定义和合法的Java语句,在方法体中声明的变量和方法参数称为局部变量。
2.实例方法和类方法
除去构造方法外,其他方法分为实例方法和类方法,用关键字static修饰的方法称为类方法或静态方法,不用static修饰的方法称为实例方法。一个类中的方法可以相互调用:实例方法可以调用该类中类方法和实例方法,类方法只能调用该类的类方法,不能调用实例方法。
实例方法只能操作成员变量和类变量;二类方法只能操作类变量,不能操作实例变量。实例方法必须通过对象来调用,类方法可以通过类名来调用。
3.参数传值
当方法被调用时,如果方法有参数,参数必须实例化,级参数变量必须有具体的值,在Java中方法的所有参数都是传值的。
(1)基本数据类型参数的传值
对于基本数据类型的参数,向该参数传递的值得级别不可以高于该参数的级别。
(2)引用类型的传值
Java的引用数据类型包括对象数组以及接口。当参数是引用类型是,“传值”传递的是变量的引用而不是变量所引用的实体。
如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化,因为两个引用型变量如果具有同样的引用,就会用同样的实体,但是改变参数引用不会影响向其传值变量的影响。
例:


方法重载

方法重载值的是一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,级或者是参数的各数不同,或者是参数的类型的不同。方法的返回类型和参数的名字不参与比较,也就是说,如果两个方法的名字相同,及时类型不同,也必须保证参数不同。

关键字this

this是Java的关键字可以出现在实例方法和构造方法中,但不可已出现在类方法中。
1.在构造方法中使用this
关键字可以出现在类的构造方法中,代表使用该构造方法创建的对象。
2.在实例方法中使用this
关键字this可以出现在累的实例方法中,代表使用该方法的当前对象。
实例方法可以操作成员变量。实际上,成员变量在实例方法中出现时,默认的格式是
this.成员变量
意思是当前对象的成员变量。类的实例方法可以调用类的其他方法,调用的默认格式如下:
this.方法
3.类方法中不可以使用this
4.区分成员变量和局部变量
成员变量在整个类中有效,局部变量仅在方法内有效,在方法体中声明的变量称为局部变量。方法的参数在整个方法内有效,方法内定义的局部变量从他定义的位置之后开始有效。如果实例方法中或类方法中的局部变量与成员变量名字相同,则成员变量被隐藏,在实例方法中如果想使用这个成员变量需要在成员变量前面加上this,在类方法中必须显式使用类名操作类变量。

1.包语句
通过关键字package声明包语句,知名源文件定义类所在的包一般格式为:
package 包名;
如果源程序舍弃包语句,则默认为源文件定义命名的类在同一个包内,但该包没有名字。包的名字可以是一个合法的标识符,也可以是若干个标识符加“。”分隔而成。包名应该避免与其他包名相冲突。
2.使用参数“-d”编译源文件
cmd中javac可以使用参数“-d”指定生成字节码文件所在的目录,如果不谁用“-d”会在当前目录生成字节码
如果源文件没有包名可以将字节码文件存放在指定的有效目录中。如
javac -d F:tsinghua1000 Myfile.java
将源文件myfile放到F:tsinghua、1000中

import语句

使用import语句可以引入包中的类。
1.使用类库中的类
为了使用Java为我们提供的类,我们可以使用import语句进行引入,如果要引入一个包中全部的类可以使用“*”代替。
2.使用自定义包和无名包中的类
编译一个源文件,得到该类源文件中类的字节码文件,然后供其他类使用,基本原则是:
(1)如果应用程序所需的其他源文件没有包名,那么必须将该文件编译后的得到的字节码文件和应用程序存放在同意目录中。
(2)如果应用程序所需的其他源文件有包名,那么可以将源文件编译后得到的字节码文件存放刀应用程序所在目录的子目录中。
(3)如果应用程序所需的源文件有包名,但是没有将该源文件编译后得到的字节码文件存放刀应有程序所在目录的子目录中,而存放在其他目录的子目录中那么必须在classpath中指明包的位置,
例如包在C:2000tomjiafei可以在命令行中执行如下命令:
set classpath=E:jdk1.6jrelibrt.jar;.;C:2000
或将上述命令添加刀classpath值中,对于(1)(2)命令不需要修改classpath值,因为默认的classpath值是E:jdk1.6jrelibrt.jar;.;
3.避免类名混淆
在一个源文件使用一个类时,只要不引起混淆,就可以省略该类的包名,但在一些情况下不能省略包名。
(1)区分无包名的类和有包名的类
如果一个源文件使用了一个无名包的类,又用import引用了摸个有包名同名的类,就会引起类名的混淆,
(2)区分有包名的类
如果一个源文件引入了两个包中同名的类,那么在使用该类时不允许省略包名。

访问权限

类在定义声明成员变量和方法时可以用关键字private、protected和public来说明成员变量和方法的访问权限。
1.私有变量和私有方法
用关键字private修饰的成员变量称为私有变量,修饰的方法称为私有方法。
如果类A是某个成员变量是私有类变量,那么在另一个类中也不能通过类名A操作这个私有类变量。如果类中某个方法是私有类变量,也不能通过类名A调用这个私有的类方法。对于私有成员或方法,只有本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有办法。
2.共有变量和共有方法
用public修饰的成员变量和方法被称为共有变量和共有办法。
如果一个类A中的某个成员中是public变量,那么在另一个类中,也可以通过类名在来操作这个成员变量,如果类A中的某个方法是pulic类方法,在另一个类中也可以通过类名调用这个public类方法。
3.友好变量和友好方法
不用private、public、protected,修饰符的成员变量和方法被称为友好变量和友好方法,在另一个类中用类A 创建了一个友好变量和友好方法,在任何一个与其在同一个包中的类中都可以通过类A的类名访问类A的友好方法和友好变量。如果用import引用另一个包的类,并用该类创建了一个对象,那么该类的这个对象将不能访问自己的友好变量和友好方法。
4.受保护的成员变量和方法
用protected修饰的成员变量和方法称为受保护的成员变量和受保护的方法。在另一个类中用类A创建一个对象后,如果这个类与类A在同一个包中,那么该对象能访问自己的protected变量和protected方法。

对象数组

如果程序需要某个类的若干个对象,可以使用对象数组,即数组的元素是对象。例如:
Integer [] m;
m=new Integer[10]
注:上述代码仅定义数组m有10个元素,并且没个元素都是Integer类型的对象,但这些对象都是空对象,在使用前应当先创建数组所包含的对象。

反编译和文档生成器

使用SDK提供的反编译器javap.exe可以将字节码反编译成源码,查看源码类中的public方法名字和public成员变量的名字。例如
javap java.awt.Buutton
将列出Button中的public方法和欧不理睬成员变量
java -private java.awt.Button
将列出Button中全部按方法和成员变量
java Example.java
用javadoc生成Example.java的HTML文档也可以加“-d”指定生成文档所在的目录。

JAR文件

Java应用程序在运行时,需要将使用到的类字节加载刀内存,因此对字节的码文件所在的位置有着特殊要求。

1.使用当前应用程序所在目录中没有包名的类可以直接加载使用 2.使用Java运行程序所在目录中的类

Java运行程序中的类都是有包名的,必须使用import进行引用包中的类。

3.使用应用程序当前目录的子目录中的类

应用程序当前目录下的子目录可以作为用户自定义包的包名,具有该包名的类必须存放在这些子目录中,应用程序就可以使用import语句引用用户自定义包中的类。

4.使用Java运行环境拓展中的类

可以使用jar.exe命令把一些类的字节码文件压缩成一个JAR文件,然后将这个JAR文件存放刀Java运行环境的拓展中,即将该JAR文件存放在JDK安装目录的jrelibext文件夹中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462949.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号