Java 面向对象

类和对象

我们可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量统称为引用型变量,也就是说,所有的类是引用数据类型。

定义类:面向对象的程序设计过程中有两个重要概念:类(class)和对象(object也被称为实例instance)

其中类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体。

Java语言是面向对象的程序设计语言,类和对象是面向对象的核心,Java语言提供了对创建类和创建对象简单的语法支持。

Java语言里定义类的简单语法如下:

[修饰符] class 类名

{     

//属性       方法

}

在上面的语法格式中,修饰符可以是public,final,或者完全省略中两个修饰符,类名只要是一个合法的标识符 即可,但是这仅仅满足Java语法的要求,从程序的可读性方面来看,Java类名必须是一个或多个有意义的单词连缀而成,每个单词首字母大写,其他字母全部小写,单词与单词之间不需要使用任何分隔符。

对于一个类而言,可以包含三个最常见的成员:构造器 ,属性,方法 ,三种成员都可以定义零个或多个,如果三种成员都定义零个,就只定义了一个空类,这没有太大事务意义。

属性用于定义该类活该类的实例所包含的数据,法法则用于定义该类活该类的实例的行为或功能实现,构造器用于构造该类的实例,Java原因通过new关键字来调用构造器,从而返回该类的实例。

构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此Java语言提供了一个功能,如果程序员没有为一个类编写构造器,系统会为该类提供一个无参构造器,一旦程序员为一个类提供构造器,系统将并不会为该类提供构造器。

定义属性的语法:

[修饰符] 属性类型 属性名  [=默认值]

属性语法格式的详细说明:

修饰符:修饰符可以省略,也可以是public,protected,private,static ,final 其中public protected private三个最多只能出现其中之一,可以与static final组合起来修饰属性。

属性类型:属性类型可以是Java语言允许的任何额数据类型,包括进本类型和引用类型。

默认值:定义属性还可以定义一个可选的默认值。

定义方法的语法格式:

[修饰符]  方法返回值类型 方法名 (形参列表)

{

   ;;;;;

}

 方法体里面多条 可执行性与之间有严格的执行顺序 排在方法体前面的语句总是先执行,排在方法体后面的语句总是后执行。

不使用static 修饰的普通方法,属性则属于该类的单个实例,而不是属于该类,因为通常把不使static修饰的属性和方法也称为实例属性,实例方法。

定义构造器的语法格式:

[修饰符]  构造器名 (形参列表)

{

 。。。。。。。。。构造器执行体

}

构造器不能定义返回值类型声明,也不能使用void 定义 构造器没有返回值,

如果构造器定义了返回值类型,或使用void定义构造器定义构造器没有返回值,编译时不会报错会把所谓的构造器当做方法来处理

对象的this引用:

Java提供了一个this关键字,this关键字是一个对象的默认引用,this关键字总是指向调用该方法的对象,根据this出现的位置不同,this作为对象的默认易用有两种情形

(1):构造器中引用该构造器执行初始化的对象

(2):在方法中引用调用该方法的 对象。

this关键字最大的作用就是让类中一个方法,访问该类的另一个方法或属性。

方法详解

方法是类或对象的行为特征的抽象,方法是类或对象最重要的组成部分,但从功能上来看,方法完全类似与传统结构化程序设计里的函数,Java里的方法不能独立存在,所有的方法都必须定义在类里。方法在逻辑上要么属于类,要么属于对象。

Java语言里的方法的所属性主要体现在如下几个方面;

(1):方法不能独立定义,方法只能在类型里定义。

(2):从逻辑意义上看,方法要么鼠疫一个类,要么属于一个对象。

(3):永远不能独立执行方法,执行方法必须使用类或对象作为调用者。

递归方法

一个方法体内调用它自身,被称为方法的递归。方法递归包含了一种隐式的循环,它会重复执行某段 代码,但这种重复执行无须循环控制。

只要一个方法的方法体实现了再次调用了方法本身,就是递归方法,递归一定要向已知方向递归 。

方法重载

Java允许同一个类里定义 多个同名方法,只要参数列表不同就可以,如果同一个类里包含了两个或两个以上方法的方法名相同 ,单参数列表不同,则被称为方法重载。

在 Java程序中 需要确定一个方法 需要三个要素:

(1):调用者。也就是方法的所属者,既可以是类,也可以是对象。

(2):方法名:方法的标识。

(3):形参列表:当调用方法时,系统将会根据传入的实参列表匹配 。

方法重载的要求就是两同,一不同:同一个类中方法名相同,参数列表不同,至于方法的其他部分,如方法的返回值类型,修饰符等,与方法 重载没有任何关系。

成员变量和局部变量

成员变量指的是在类范围里定义的变量,也是前面所说的属性;

局部变量指的是在同一个方法内定义的变量。不管是成员变量,还是局部变量,都应该遵守相同的命名规则:从语法的角度上是一个合法的标识符即可,

局部变量分类:

(1)形参:在定义方法签名时定义的变量,形参的作用域在整个方法内有效。

(2)方法局部变量:在方法体内定义的局部变量,它的作用是从定义该变量的地方生效,到该方法结束时失效。

(3)代码块局部变量:在代码块中定义的局部变量,这个局部变量的作用域从定义该变量的地方生效,到该代码块结束时失效。

与成员变量不同的是,局部变量出了形参之外,都必须显式初始化,也就是说,必须献给方法局部变量和代码块局部变量指定初始值,否则不可以访问它们。

隐藏和封装

封装是面向对象的三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过类所提供的方法来实现对内部信息的搞作和访问。

对一个类或对象实现良好的封装,可以实现以下目的:

1:隐藏类的实现细节。2:让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里假如控制逻辑,限制对属性的不合理访问。3:可进行数据检查,从而有力保证对象信息的完整性。4:便于修改,提高代码的可维护性。

为了实现想好的封装,需要从两个方面考虑:

(1)将对象的属性和实现细节隐藏起来,不允许外界直接访问。

(2)把方法暴露出来,让方法来操作或访问这些属性。

因此,封装实际上有两个方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来。

Java提供了三个访问控制符:private protected  和public

 

private    本类 

默认(default)  本类   同包

protected    本类   同包   子类

public     本类    同包    子类      其他  

 

import 

如果需要使用不同的包中的其他类型时,总是需要使用该类的全名,这是一件非常麻烦的事情。

为了 简化程序,Java引入了import关键字,import可以向某个Java文件中导入指定宝层次下的某各类或全部类,import应该出现在package语句(如果有的话)之后,类定义之前,一个Java源文件只能包含一个package语句,可以包含多个import语句用于导入多个包层次下的类

Java的常用包

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值