目录

1、类和对象

1.1 定义类

1.1.1 成员变量

1.1.2 方法

1.1.3  构造器

2、对新的创建和使用

2.1 对象的创建

2.2 对象的使用


1、类和对象

java是面向对象的一种编程语言,面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance)。其中类是某一类具有共同特征的对象的抽象;对象是类的具体化

1.1 定义类

java语言里定义类的语法如下:

Java语言中类的定义简单语法
[修饰符] class 类名{
    零个或多个成员变量...
    零个或多个方法...
    零个或多个构造器...
}

/**
 * 创建一个Person类,用于本文下文部分使用
 * 该类没有显示创建构造器,那么系统会提供一个默认的无参构造器
 * 默认的无参构造器:public Person(){}
 */
public class Person{
    //成员变量
    public String name;    //person的姓名
    public int age;        //person的年龄

    //定义一个方法
    public viod sayHi(String sentence){
        System.out.println("Hi," + sentence);
    }
}

修饰符可以是public、final、abstract或者完全省略修饰符。其中,public修饰的类可以被所有的类访问;final修饰的类,则表明该类不能被继承。该类的所有成员方法都会被隐式地指定为final方法;使用abstact 修饰则表示为该类为抽象类。

类名只是一个合法的标识符,在java语言规范中,类名的命名规则是:有一个或者多个有意义的单词连缀组成,每个单词首字母大写,其他字母小写,单词之间不需要任何分隔符(遵循驼峰式命名规则)。

1.1.1 成员变量

成员变量(又叫类变量)是用于定义类包含的状态数据,成员变量定义语法如下:

[修饰符] 数据类型 变量名 [= 默认值]

 对定义成员变量的语法格式详解如下:

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

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

变量名:变量名只要是一个合法的标识符即可。在java语言规范中,变量名的命名规则是:有一个或多个单词连缀组成,第一个单次小写,其他单词首字母大写其余字母小写,单词之间不需要使用任何分隔符(遵循驼峰式命名规则)。

默认值:变量可以人为指定一个默认值,也可以不指定。当不指定默认值的时候,系统会默认指定默认值,如果是数值类型的基本类型,默认值是0;如果是boolean类型的基本类型,只有在实例化的时候才会有默认值false;如果是引用类型的数据类型,默认值为null。

1.1.2 方法

方法用于定义该类或该类的实例的行为特征或者功能实现,方法的定义语法如下:

Java中方法的定义语法:
[修饰符] [方法返回值类型] 方法名(形参列表){
    //方法体
}

1.1.3  构造器

构造器是用于构造类的实例,是一种特殊的方法,是一种通过构造器来实例化类而获取对象(也叫实例)的方法,定义构造器的语法如下:

Java中类的构造器定义语法
[修饰符] 构造器名(形参列表){
    //构造器执行体
}

构造器是一个类创建对象的根本途径,如果一个类没有构造器,那么这个类就无法创建实例。Java中,如果程序员没有为一个类编写构造器,则系统会默认为该类提供一个默认的无参构造器。如果程序员为一个类提供了构造器,则系统将不再提供默认的构造器。

2、对新的创建和使用

2.1 对象的创建

上文提到过,构造方法(又叫构造器)是用来实例化类而创建对象。通过new关键字调用某个类的构造器即可创建对象(类的实例)。代码如下:

//方法1:先定义后创建
Person person;
person = new Person();

//方法2:定义变量的同时赋值
Person person = new Person();

2.2 对象的使用

对象的使用包括以下两个

a) 访问对象的实例变量

b) 调用对象的方法

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

static修饰的成员变量(又称为静态变量或类变量)和方法(又称为静态方法)是属于类的,类变量或者静态方法既可以通过类调用,又可以通过对象调用,但是一般是直接使用类调用。没有static修饰的成员只能通过对象调用。