组成java程序的基本要素是_Java程序开发学习之类与对象

Java程序开发学习之类与对象

(学习参考书:Java2实用教程第5版)

一、面向对象编程的三个特征

封装:面向对象编程的核心思想就是对象将自己的数据和对这些数据的操作合理有效地封装在一起。

继承:子类可以继承父类的属性和功能,即继承了父类所具有的数据和对数据的操作,同时可以增加子类独有的数据和对数据的操作。

多态:一是操作名称的多态,向操作传递不同消息,以便让对象根据相应的消息产生一定的行为;二是多态是与继承有关的多态,同一个操作被不同对象调用时可能产生不同的行为。

二、类声明和类体

类是组成Java程序的基本要素,封装了一类对象的状态和方法。类是用来定义对象的模板,可以创建对象。当使用一个类创建了一个对象时,我们也说给出了这个类的一个实例。类由两部分构成:类声明和类体。

clss 类名{

类体的内容;

}

其中的class 类名称为类声明。

三、类体的构成

类体内容有两个:成员变量和方法;

成员变量:用于刻画类创建的对象的属性。成员变量的类型可以是Java中的任何一种数据类型,它在整个类内都有效,与它在类体书写的位置无关。在定义成员变量的时候可以赋初值。

方法:其中的构造方法供类的创建使用,用来给出类所创建的对象的初始状态。还有的方法是由类所创建的对象调用,对象调用这些方法操作成员变量形成一定的算法,体现对象具有的某种行为。

四、构造方法

类中有一部分称为构造方法,类创建对象时需使用构造方法,以便给类所创建的对象一个合理的初始状态。

构造方法是一种特殊的方法,其名字必须与它所在类的名字完全相同,而且没有类型。

如果类中没有编写构造方法,Java会提供默认的一个无参的构造方法;如果编写了构造方法,则不提供默认构造方法。

Java允许一个类中有若干个构造方法,但这些构造方法的参数的个数或者类型必须不同。

五、对象的创建

对象的创建分为两个步骤:声明和分配成员变量。

(1)对象的声明,格式:类的名字 对象名字;

(2)为声明的对象匹配成员变量

声明的对象没有存放数据,必须要为对象分配实体,即分配成员变量。

一般使用new运算符结合类的构造方法为声明的对象分配成员变量,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法无参数,记得构造方法的名字必须和类名相同)

创建对象的格式:对象 = new 构造方法名(即是类名)(构造方法参数);

对象的声明和分配成员变量可以一步完成:

类名 对象名 = new 构造方法名(构造方法参数);

(3)创建多个不同的对象

一个类通过使用运算符new可以创建多个不同的对象,这些对象将被分配不同的内存空间,因此改变其中一个对象的状态不会影响其他对象的状态。

(4)使用对象

对象不仅可以操作自己的变量改变状态,而且拥有了使用创建它的那个类的方法的能力,对象通过使用这些方法可以产生一定的行为。

通过运算符“.”,对象可以实现对自己变量访问和方法的调用。

对象的属性:对象操作自己的变量。

对象的行为:对象调用类中的方法。

六、对象的引用和实体

当用类创建一个对象时,成员变量被分配内存空间,这些内存空间被称为该对象的实体或变量,而对象之中存放着引用,以确保这些变量被该对象操作使用。因此,如果两个对象有相同的引用,那么就具有同样的实体。

Java的垃圾收集机制:运行环境周期性的检测某个实体是否已经不再被任何对象所引用,如果发现这样的实体,就释放实体占有的内存。

没有实体的对象叫做空对象,空对象不能再去调用方法产生行为。

七、成员变量

把类以内,方法以外定义的变量称为成员变量。

(1)类变量和实例变量

成员变量用来刻画创建的对象的属性,其中一部分的成员变量称为实例变量,另一部分用关键字static修饰的成员变量称为静态变量或类变量。

所有对象共享类变量,即便一个类没有创建对象,类变量还是会分配内存空间。

类变量不仅可以通过某个对象访问,还可以直接通过类名访问。(但实例变量只能通过对象访问)

(2)常量

用关键字final修饰的成员变量叫做常量。常量的名字习惯用大写字母

final常量不占用内存空间,声明时必须初始化,对象可以操作使用,但不可更改。

八、局部变量

在方法体中声明的变量和方法的参数称为局部变量。

局部变量只在方法内有效,而且是从声明它的位置后才有效。

如果局部变量的名字与成员变量相同,那么成员变量被隐藏,即是成员变量在该方法内暂时失效。

如果想在方法中使用隐藏的成员变量,必须使用关键字this格式:this.变量名

成员变量有默认值,但是局部变量没有默认值,必须保证局部变量有具体的值。

九、参数传值

(1)基本数据类型的传值

参数的传递只能往精度不变或降低的方向。即低精度参数不能传递给高精度的变量。

(2)引用类型的传值

Java的引用数据包括数组、对象、接口。它们传递的是变量中存放的引用,而不是所引用的实体。

(3)可变参数

指声明方法时不给出参数的列表中从某项开始直至最后一项参数的名字和个数,但这些参数的类型必须完全相同。可变参数使用“…”表示若干参数,这些参数的类型必须相同,并且最后一个参数必须是方法的参数列表中最后一个参数。例如:void f(int … x)表明了从第一个到最后一个参数都是int类型,但连续出现的int类型的个数不确定,称x是方法f的参数列表中可变参数的“参数代表”。

由此诞生增强的for语句:

for(声明循环变量:参数代表){

循环体;

}

十、对象的组合

一个类可以把某个对象作为自己的成员变量,如果用这样的类创建对象,那么这个对象中就会有其他对象,就是人们常说的Has-A

如果一个对象a组合了对象b,那么a就可以委托b调用其方法。

十一、实例方法和类方法

(1)实例方法:不用关键字static修饰

数据类型 方法名{

方法体内的语句;

}

(2)类方法:用关键字static修饰

static 数据类型 方法名{

方法体内的语句;

}

实例方法可以调用该类中的实例方法或类方法,但类方法只能调用该类的类方法。

实例方法可以操作成员变量(类变量和实例变量),类方法只能操作类变量。

实例方法必须通过对象来调用,类方法可以通过类名来调用(也可通过对象调用)。

十二、方法重载

方法的重载是指行为的多态性,具体含义是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即参数的个数或者某个参数的类型不同。这些同名不同参的方法产生不同的行为。但是重载方法在被调用时容易出现歧义调用。

十三、this关键字

this关键字可以出现在实例方法和构造方法中,但不能出现在类方法中。

(1) 出现在构造方法中:代表使用该构造方法所创建的对象。

(2) 出现在实例方法中:代表正在调用该方法的当前对象。实例成员变量在实例方法中出现时,默认格式为:this.成员变量;类变量在实例方法中出现时,默认格式为:类名.成员变量。但是通常情况下可以省略。(特殊情况见8,局部变量)

十四、包

包的目的是有效区分不同Java源文件中两个类的名字相同的情况,即通过把他们隶属于不同的包来区分。

(1)包语句

通过关键字package声明包语句。包语句是Java源文件中的第一条语句,指明了源文件所定义的类所在的包格式为:package 包名;

(2)运行有包名的主类

运行有包名的主类,需要用格式:包名.主类名

十五、import语句

让一个类使用和它不在同一个包下的类。

Java提供了类库,要使用类库中的类,就必须使用import语句,引入包中的类和接口。在一个Java语句中,可以有多个import语句,必须写在package语句和源文件的类的定义之间。

如果引入一个包中的全部类,可以用通配符(*)来代替:import 包名.*;

如果是引入一个包中的某一个类:import 包名.类名;

Java提供的常见的包:

java.lang :包含所有的基本语言类,是Java语言的核心类库;

javax.swing :包含抽象窗口工具集中的图像、文本、窗口GUI类;

java.io :包含所有的输入输出类;

java.util :包含实用类;

java.sql :包含操作数据库的类;

java.net :包含所有实现网络功能的类;

十六、访问权限

1)私有变量和私有方法

用关键字private修饰的成员变量和方法称为私有变量和私有方法。如果类A声明有私有变量和方法,则在类B中以类A创建的对象不能访问A的私有变量和私有方法。

(2)共有变量和共有方法

用关键字public修饰的成员变量和方法称为共有变量和共有方法。如果类A声明有共有变量和方法,那么类B以类A创建的对象可以访问自己的共有变量和共有方法。

(3)友好变量和友好方法

不用public、protected、private关键字修饰的成员变量和方法叫做友好变量和友好方法。如果类A的成员变量和方法是友好的,在类B中以类A创建对象,如果类A和类B处在同一个包下,那么该对象可以访问友好变量和方法。

(4)受保护的成员变量和方法

用关键字protected修饰的成员变量和方法称为受保护的成员变量和方法。如果类A声明有受保护的成员变量和方法,在类B中以类A创建的对象。如果类A和类处在同一个包下,那么该对象可以访问受保护的成员变量和方法。如果不在一个包下,但是通过继承的情况,有可能让对象可以访问。

(5)public类和友好类

类声明时,如果在class前面加public,则称这样的一个类是一个public类。如果不加,则是友好类。public类能在任何另外一个类中创建对象,但是友好类必须满足在同一个包下。

十七、基本数据类型的封装

在java.lang中,提供了与基本数据类型相关的类,实现了对基本数据类型的封装。分别是:Byte、Interger、Short、Long、Float、Double、Character。

十八、对象数组

顾名思义,对象数组就是相同类型的若干个对象按顺序组合成的集合。声明对象数组后的对象仅是完成声明后的空对象。需要创建才能使用。例如:

Student stu[] = new Student[10];

for(int i=0;i<10;i++) {

stu[i] =new Student();

}

标签:Java,变量,构造方法,对象,成员,程序开发,参数,之类,方法

来源: https://blog.csdn.net/YCF8746/article/details/112688728

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值