一:类与对象
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();
四.访问控制