一:类与对象 1.类的声明 类可理解为Java中的一种新的数据类型,他是Java程序设计的基本单位。这种数据类型中封装了数据的内容和对数据内容的操作。类的定义可以看作是建立对象的模板,当程序运行时,已声明的类用来创建新对象。由类创建对象对象的过程称为实例化(instantiation),每个对象都是类的一个新实例(instance)。
2.类与对象的关系 类→对象(具体化过程) 对象→类(抽象化过程)
对象包括 1.属性(对象的特征) 2.方法(对象的行为)
3.类的声明格式
[修饰符] class 类名 [extends 父类] [implements 接口名] { 类成员变量声明 //描述对象的状态 类方法声明 //描述对象的行为 }3.1类头 1.修饰符 (1)访问控制符:public、private和protected public(公共)——后续定义的任何类均可访问。 private(私有)——仅能被类自身的内部函数成员访问,其他任和类都不能直接访问。 protected(受保护的)——同private,但能被继承类受保护的成员访问,不能被私有成员访问。 (2)抽象类说明符:abstract。 abstract 不仅用于类的声明,也适用于方法。当用于类的声明时,该类不能创建对象。 (3)最终类说明符:final。 final不仅用于类的声明,也适用于变量和方法。当用于类的声明时,该类不能有子类;当用于变量声明时,该变量最初赋予的初值在以后的调用中只能被引用不能被修改;同样声明为final的方法,在以后只能被使用不能被重载。 2.class关键字: 类的修饰符后面的class标志一个类定义的开始(注意不将class写成Class),class后面应跟新定义的类的名字,类名由编程者自己定义,应符合Java对标识符的有关规定,能体现该类的主要功能或作用。 3.类名 类名指的是具体创建的类的名字,遵循Java的命名方式。(习惯上类名首字母大写) 3.2类的成员 1.属性 声明方式
[修饰符] 数据类型 变量名;2.方法
[修饰符] 返回值类型 方法名(参数列表) { //方法体 }3.构造方法
4.类的实例对象及使用过程
public class Student { //创建了一个学生类 pubic static void main(String[] args) { int age; //定义类的成员变量 String name; String sex; Student stu = new Student(); //创建了一个名为stu的学生对象 stu.age = 18; stu.name = 张三; stu.sex = 男; }二.构造方法 1.概念 (1)构造方法是类中的一种特殊的方法。 (2)构造方法名与类名相同,不返回任何值。 (3)构造方法可初始化成员变量。 例:类中加一个构造方法,可初始化类的成员变量
public class Student { int age; String name; public Student(int a,String b) { age = a; name = b; } Student stu = new Student(18,"小明"); }2.关键字this (1)this表示当前对象,可以调用类的属性、方法、构造方法 (2)什么时候使用this关键字呢? 当形参与成员变量重名时,如果在方法内部需要使用成员变量时,必须添加this来表示该变量的类成员。它在方法内部就是这个方法所属的对象的引用变量。 例:调用类的属性
public class Person { public Person(int age,String name) { this.name = name; this.age =age; } int age; String name; public void setName(String name) { this.name = name; } }例:调用类的方法
public class A { String name; public A(String x) { name = x; } public void func1() { System.out.println("func1 of "+ name +" is calling"); } public void func2() { A a2 = new A("a2"); This.func1(); a2.func1(); } } public class TestA { pubic static void main(String[] args) { A a1 = new A ("a1"); a1.func2(); } }运行结果
func1 of a1 is calling func1 of a2 is calling三.方法的参数传递 1.方法中含有的参数 (1)形参:方法声明时的参数。 (2)实参:方法调用时实际传给形参的参数值。
2.参数传递之基本数据类型 栈中存的有基本数据类型 因此:基本数据类型在参数传递过程中,就是把实参的值复制到形参上。 3.参数传递之引用对象类型 栈中存的是引用对象在堆中的地址 因此:引用对象类型在参数传递过程中,也是把值传给形参,这个值是栈中的值,也就是引用对象在堆中的地址。 例: 简单类对象的实例化过程 Person p = new Person(); 四.访问控制
