Java学习笔记(5):1.类和对象

来源:互联网 发布:管理顾客的软件 编辑:程序博客网 时间:2024/04/28 16:56


1.      定义类

Java是面向对象的程序设计语言,类是面向对象的重要内容,我们可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量统称引用变量。也就是说所有类是引用数据类型。

面向对象的程序设计过程中有两个重要的概念:类(class)和对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体。这就好像动物是一个类,猫猫狗狗是动物的一些对象。

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

[修饰符] class 类名{

零到多个构造器定义…

零到多个field…

领导多个方法…

}

定义field的语法格式如下:

[修饰符] Field 类型 Field 名 [=默认值];

Field语法格式的详细说明如下:

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

>Field类型:Field类型可以是Java语言允许的任何数据类型,包括基本数据类型和现在介绍的引用类型。

>Field名:Field名只要是一个合法的标识符即可,但这只是从语法的角度上来说,如果从程序可读性的角度来看,Field名应该由一个或多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其余字母全部小写,单词与单词之间不要有任何分隔符。

>默认值:定义Field还可以指定一个可选的默认值。

定义方法的语法格式如下:

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

//零条到多条可执行性语句组成的方法体

}

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

>方法返回值类型:返回值类型可以是Java语言允许的任何数据类型,包括基本类型和引用类型;如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或一个表达式,这个变量或者表达式的类型必须与此处声明的类型匹配。除此之外,如果一个方法没有返回值,则必须用void来声明没有返回值。

>方法名:方法名的命名规则与Field命名规则基本相同,但通常建议方法名以英文中的动词开头。

>形参列表:形参列表用于定义该方法可以接受的参数,形参列表由零组到多组“参数类型 形参名”组合而成,多组参数之间以英文逗号(,)隔开,形参类型和形参名之间以英文空格隔开。一旦在定义方法时指定了形参列表,则调用方法时必须传入对应的参数值——谁调用方法,谁负责为形参赋值。    

 

定义构造器的语法格式如下:

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

//零条到多条可执行性语句组成的构造器执行体

}

>修饰符:修饰符可以省略,也可以是public、protect、private其中之一。

>构造器名:构造器名必须与类名相同。

>形参列表:和定义方法形参列表的格式完全相同。

下面程序将定义一个Person类。

public class Person {    public String name;    public int age;    public void say(String content){        System.out.println(content);    }}

2.       对象的产生和使用

创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例。

//定义一个Person类型的变量Person p;//通过new关键字调用Person类的构造器,返回一个Person实例//将Person实例赋给p变量p = new Person();/**上面代码也可以简写成如下形式*定义p变量的同时并为p变量赋值*Person p = new Person();*/

如果访问权限允许,类里定义的方法和Field都可以通过类或实例来调用。类或实例访问方法或Field的语法是:

类.Field|方法,或者实例.Field|方法

必须注意的是,static修饰的方法和Field,既可以通过类来调用,也可以通过实例来调用,而没有使用static修饰的普通方法和Field,只能通过实例来调用。

//调用p的name Field,直接为该Field赋值p.name = "June";//调用p的say方法,声明p方法时定义了一个形参//调用该方法时必须为形参指定一个值p.say("Java语言很简单,学习很容易!");//直接输出p的name Field的值,将输出JuneSystem.out.println(p.name);

3.对象、引用和指针

不管是数组还是对象,当程序访问引用变量的Field或方法时,实际上是访问该引用变量所引用的数组、对象(实例)的Field或方法。从这角度上来看与C语言的指针很像,它们都是储存一个地址值,通过这个地址值引用到实际对象(实例)。


0 0
原创粉丝点击