文档章节

Java类和对象

西红柿的眼泪
 西红柿的眼泪
发布于 2016/07/04 22:15
字数 1163
阅读 5
收藏 0

面向对象的程序设计过程中有两个重要的概念:类class和对象object也被称为实例instance,其中类是对一批对象的抽象,可以把类理解为某种概念:对象才是一个具体存在的实体。

类的简单语法为:[修饰符] class 类名{ 零个到多个构造器;零个到多个成员变量;零个到多个方法}  其中修饰符可以是public、final、abstract,或者完全省略这三个修饰符,类名只要是一个合法的标识符即可,三种成员可以定义零个或多个。

1.类里面的各个成员之间的定义顺序没有任何影响,各成员之间相互调用,但static修饰的成员变量不能访问没有static修饰的成员。成员变量是累的属性,成员方法是类的行为或者实现功能,构造器是用来构造类的实例。

2.成员变量的语法 [修饰符] 类型 成员变量 [=默认值];修饰符可以省略,也可以是public、protected、private、static、final,其中public、protected、private三个变量最多只能出现一个,可以与static、final组合起来修饰成员变量。类型可以是java语言中的任何数据类型,包括引用类型。成员变量只要是一个合法的标识符即可。默认值为成员变量指定的一个可选默认值。

3.定义方法的语法:[修饰符] 方法返回值类型 方法名(形参列表){ 有零条到多条可执行性语句组成的方法体};修饰符也可以省略,也可以是public、protected、private、static、final、abstract,其中public、protected、private三个最多只能出现其中之一,abstract和final最多只能出现一个,他们可以与static修饰连用。方法的返回值类型可以是java语言中允许的任何一种类型,则方法的返回值中必须有一个有效的return。如果没有返回值,必须使用void声明没有返回值。方法名的命名规则与成员变量的命名规则相同。形参列表用于该方法可以接受的参数,可以有零个到多个形参名组合而成。调用该方法必须传入对应的参数值-谁调用方法,谁负责为该方法形参赋值。static是一个特殊的关键字,static修饰的成员表明它属于这个类的本身,称为类变量或类方法,而不用static修饰的称为实例变量、实例方法。

4.构造器的语法:[修饰符] 构造器名(形参列表){ 有零条到多条可执行语句组成的构造器执行体};修饰符可以省略,也可以是public、protected、private其中之一。构造器名必须和类名字相同。形参列表和定义方法形参列表格式完全相同。构造器是不能有返回值的,因为当使用new调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。

创建对象的根本途径是构造器,创建对象之后,可以通过创建的对象来访问对象的实例变量,调用对象的方法。

1.对象访问类的方法或实例可以通过实例.类变量|方法来调用,如果访问权限允许也可以通过类来调用。static修饰的方法和成员变量既可以通过类来调用也可以通过实例来调用;没有使用static修饰的普通的方法和成员变量,只有通过实例来调用。

2.对象的创建过程,其实就先产生一个变量和一个对象,而对象的实例变量通常存储在一个堆里面,而变量通常在栈里面,通过引用把对象在栈中的方法和变量引用给当前的变量。Java中不允许去直接访问堆中的对象,只能通过对象的引用来操作,这实际上是JAVA语言封装了C语言的指针。

3.java中的this关键字,this关键字总是指向调用该方法的对象根据this出现在的位置不同,this有这两种情形:在构造器中引用该构造器正在初始化的对象、在方法中引用调用该方法的对象。用static修饰的变量不能使用this来调用。

 

 

© 著作权归作者所有

上一篇: Java的方法
下一篇: Java深入数组
西红柿的眼泪
粉丝 4
博文 48
码字总数 39713
作品 0
郑州
程序员
私信 提问

暂无文章

AOP的学习(1)

AOP 理解AOP编程思想(面向方法、面向切面) spring AOP的概念 方面 -- 功能 目标 -- 原有方法 通知 -- 对原有方法增强的方法 连接点 -- 可以用来连接通知的地方(方法) 切入点 -- 将用来插入...

太猪-YJ
27分钟前
2
0
一张图看懂亮度、明度、光度、光亮度、明亮度

亮度、明度、光亮度,Luminance和Brightness、lightness其实都是一个意思,只是起名字太难了。 提出一个颜色模型后,由于明度的取值与别人的不同,为了表示区别所以就另想一个词而已。 因此在...

linsk1998
昨天
4
0
Python应用:python链表示例

前言 python链表应用源码示例,需要用到python os模块方法、函数和类的应用。 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是...

python小白1
昨天
3
0
Source Insight加载源码

Source Insight是一个图形化的源代码查看工具(当然也可以作为编译工具)。如果一个项目的源代码较多,此工具可以很方便地查找到源代码自建的依赖关系。 1.创建工程 下图为Snort源代码的文件...

天王盖地虎626
昨天
3
0
nginx-rtmp-module的缺陷分析(二)

nginx-rtmp-module使用指令push和pull来relay媒体流数据,以便分布式部署服务。 当nginx-rtmp-module作为边缘服务器(一般不会向边缘服务器推流)时,使用pull从源服务器获取媒体流数据,俗称...

YoungSagit
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部