类和对象
定义类
[修饰符] class 类名
{
零个到多个构造器定义…
零个到多个成员变量…
零个到多个方法…
}
修饰符:public、final、abstract、或者省略三个修饰符
类名: 是一个合法的标识符即可,由一个或多个有意义的单词连缀而成,每个单词首字母大写,其他字母都小写,单词与单词之间不要使用任何分隔符
构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例,但Java中提供了一个功能:如果一个类没有编写构造器,则系统会为该类提供一个默认的构造器;如果类中编写了构造器,那么系统不会为该类提供构造器
类里各成员之间的定义顺序没有任何影响,各成员之间可以相互调用,static修饰的成员不能访问没有static修饰的成员
定义成员变量
[修饰符] 类型 成员变量名 [=默认名];
修饰符:修饰符可以省略,亦可以是public、protected、private、static、final,其中public、protected、private三个最多只能出现其中之一,可以与static、final组合起来修饰成员变量
类型:Java语言中允许的任何数据类型,包括基本类型和引用类型
成员变量名: 是一个合法的标识符即可
默认值:定义成员变量还可以指定一个可选的默认值
定义方法
[修饰符] 方法返回值类型 方法名(形参列表)
{
//由零条到多条可执行性语句组成的方法体
}
修饰符:修饰符可以省略,亦可以是public、protected、private、static、final、abstract,其中public、protected、private三个最多只能出现其中之一;fina l和 abstract 最多只能出现其中之一,它们可以与static组合起来修饰方法
方法返回值类型:返回值类型可以是Java语言允许的任何数据类型,包括基本类型和引用类型,如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或一个表达式,如果方法没有返回值,则必须用void声明没有返回值
方法名:与成员变量的命名规则基本相同
形参列表:形参列表用于定义该方法可以接受的参数,形参列表由零组到多组"参数类型 形参名"组合而成,多组参数之间以英文逗号(,)隔开,形参类型与形参名之间以英文空格隔开。一旦在定义方法时指定了形参列表,则调用该方法时必须传入对应的参数值——谁调用方法,谁负责为形参赋值
定义构造器
[修饰符] 构造器名(形参列表)
{
//由零条到多条可执行性语句组成的构造器执行体
}
修饰符:修饰符可以省略,亦可以是public、protected、private其中之一
构造器名必须与类型名相同
形参列表:和定义方法形参列表的格式完全相同
注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或者使用void声明构造器没有返回值,编译时不会出错,但所谓的构造器会被当作方法处理——它就不再是构造器
一段完整的代码
public class Demo_Person {
public static void main (String [] args) {
Person p1=new Person ();
p1.setName("张三");
p1.setAge(12);
System.out.println(p1.getName()+"..."+p1.getAge());
System.out.println("------------------------------------");
Person p2=new Person("里斯",15);
p2.show();
System.out.println("------------------------------------");
Person p3=new Person();
/*p3.name="王五";
p3.age=14;*/
//这种调用方式是错误的,name和age是private的,是私有的,只可通过构造器或方法调用
}
}
class Person {
private String name;
private int age;
public Person () {
System.out.println("这是空参构造器");
}
public Person (String name,int age) {
this.name=name;
this.age=age;
System.out.println("这是有参构造器");
}
public void setName (String name) {
this.name=name;
System.out.println("这是设置名字的方法");
}
public String getName () {
System.out.println("这是获取名字的方法,一定要类型匹配");
return name;
}
public void setAge (int age) {
this.age=age;
System.out.println("这是设置年龄的方法");
}
public int getAge () {
System.out.println("这是获取年龄的方法");
return age;
}
public void show () {
System.out.println(name+"..."+age);
System.out.println("这是打印的方法");
}
}