什么是对象:在现实世界中,随处可见的一种事物就是对象。
面向对象的特点:封装性、继承性、多态性
1.1 封装(思想):对象的属性和行为封装起来,载体即为类。保存类数据结构的完整性,提高了程序的可维护性。
1.2 继承:可以继承父类的行为和属性,其中还可以添加独特的属性及行为。可复用性强,提高系统性能,减少系统在使用过程中出现的错误概率。
1.3 多态:父类的对象运用于子类特征
1.4 类:成员变量
`package Demo01;
public class Book {
private String name; //成员变量
public String getName(){ //获取图书方法
return name;
}
public void setName(){ //设置设置图书
this.name = name;
}
}
`
1.5 成员方法
权限修饰符 返回值类型 方法名(参数类型 参数名){
...//方法体
return 返回值;
}
1.6 权限修饰符
private: 本类中是可见的,同包和其他类或子类不可见,其他包的类或者子类是不可见的。
protect: 本类中是可见的,同包和其他类或子类可见,其他包的类或者子类是不可见的。
public: 本类中是可见的,同包和其他类或子类可见,其他包的类或者子类是可见的。
1.7 局部变量的使用
`package Demo01;
public class ChangeDemo {
public static int[] exchange(int[] arr){
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
return arr;
}
public static void main(String[] args) {
int arr[] = {1,2};
System.out.println("第一个值为"+ arr[0] + "第二个值为" + arr[1]);
arr = exchange(arr);
System.out.println("第一个值为"+ arr[0] + "第二个值为" + arr[1]);
}
}
`
1.8 this关键字
特点:只能用于本类。可以调用成员变量和成员方法。
对象.成员变量 对象.成员方法
1.9 构造方法
特点:构造方法没有返回值、构造方法名称要与本类的名称相同。
`package Demo01;
public class Eggcake {
int eggCount; //鸡蛋灌饼的个数
public Eggcake(int eggCount){
this.eggCount = eggCount; //将参数值eggcount的值赋值给成员变量属性eggcount
}
public Eggcake(){ //定义一个无参构造方法,默认加一个鸡蛋
//调用参数为鸡蛋饼里蛋的个数,并设置个数为1
this(1);
}
public static void main(String[] args) {
Eggcake cake1 = new Eggcake();
System.out.println("不要求加,会有"+cake1.eggCount);
Eggcake cake2 = new Eggcake(2);
System.out.println("要求加,会有" + cake2.eggCount);
}
}
`
2.1 静态变量和静态方法
static关键字特点:设置为静态,共享一个内存空间,被声明为static的变量和方法被称为静态成员。
`package Demo01;
public class Cust {
static int count = 0;
String name;
public Cust(String name){
this.name = name;
count++;
}
public static void main(String[] args) {
Cust c1 = new Cust("tom");
System.out.println("我是第" + Cust.count + "名顾客,我叫" + c1.name);
Cust c2 = new Cust("tim");
System.out.println("我是第" + Cust.count + "名顾客,我叫" + c2.name);
Cust c3 = new Cust("tny");
System.out.println("我是第" + Cust.count + "名顾客,我叫" + c3.name);
}
}
`
总结:在静态方法中不能使用this关键字、不可以直接调用非静态方法、局部变量不能使用static关键字进行声明、主方法必须用static关键字进行声明、只有内部类可以使用static关键字进行声明。