5-1类和对象

5.1类和对象

所有使用类定义的变量都是引用变量

5.1.1定义类

[修饰符] class classname
{
constructers...;

member elements...;

member methods...;
}

修饰符:

  • public

  • final

  • abstract

类名:

可读性:类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写

成员:

包含三种最常见的成员:构造器成员变量方法,每种成员都可以定义零个或多个。

static修饰的成员不能访问没有 static 修饰的成员

1.定义成员变量
[修饰符] 类型 成员变量名 [=默认值] ;
  • **修饰符:**修饰符可以省略,也可以是 public、protected、private、static 、final。其中 public、protected、private 最多只能出现其中之一,可以与 static final 组合起来修饰成员变量。

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

  • **成员变量名:**从程序可读性角度来看,成员变量名应该由一个或多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写

  • **默认值:**定义成员变量还可以指定 个可边的默认值

2.定义方法
[修饰符] 方法返回值 类型 方法名(形参列表)
{
//语句
}
  • 修饰符:public、protected、private、static、final、abstract,其中 public、protected、private三个最多只能出现其中之一。final、abstract最多只能出现其中之一 ,它们都能和static组合起来修饰方法。

3.定义构造器

当类没有构造器时,系统会提供一个默认构造器

[修饰符] 构造器名(形参列表)
{
//语句
}
  • 修饰符:修饰符可以省略,也可以是 public、protected、private 其中之一。

  • 构造器名:构造器名必须和类名相同

5.1.2对象的产生和使用

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

Person p;			//定义一个引用
p = new Person(); //创建实例并分配给引用

Person p = new Person();
定义对象变量和使用
	// 访问 name 实例变量,直接为该变量赋值
p.name = "李刚";
// 调用 say ()方法,声明 say ()方法时定义了一个形参
// 调用该方法必须为形参指定一个值
p.say("Java 语言很简单,学习很容易");
// 直接输出 name 实例变量,将输出李刚
System.out.println(p.name);

5.1.3对象、引用和指针

Java中的引用就是C的指针的封装。

5.1.4对象的this引用

this关键字总是指向调用该方法的对象。和C++一样。

//使用this
public class ThisInConstructor
{
public int foo;
public ThisInConstructor()
{
this.foo = 6;
}

public static void main(String[] args)
{
System.out.println(new ThisInConstructor().foo);
}
}

//返回this
public class ReturnThis
{
public int age;
public ReturnThis grow()
{
age++ ;
// return this 返回调用该方法的对象
return this;
}
public static void main(String[] args)
{
ReturnThis rt = new ReturnThis() ;
// 可以连续调用同 个方法
rt.grow()
.grow()
.grow();
System.out.println("rt的 age 成员变量值是 :" + rt.age);
}
}