06.01 面向对象(面向对象思想概述)(了解)
一、.面向对象思想特点:
1.是一种更符合我们思想习惯的思想;
2.可以将复杂的事情简单化;
3.将我们从执行者变成指挥者。
二、面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情。
三、面向对象的特征:封装、继承、多态。
06.02 面向对象(类与对象的概述)(掌握)
一、如何描述现实世界事物
1.属性:该事物的描述信息。
2.行为:该事物能够做什么。
二、定义类其实就是定义类的成员
1.成员变量:和以前定义变量是一样的,只不过位置发生了变化。在类中,方法外。
2.成员方法:和以前定义方法是一样的,只不过是把static去掉。
三、类和对象的概念
1.类:是一组相关的属性和行为的集合。
2.对象:是该类事物的具体体现;
06.03 面向对象(学生类的定义)(掌握)
1.学生事物
2.学生类
练习:
class Demo_Student {
public static void main(String[] args){
Demo_Student s= new Demo_Student();
s.study();
s.sleep();
}
Staticclass Student {
String name;
int age;
String gender;
}
public void sleep (){
System.out.println("学生睡觉");
}
public void study (){
System.out.println("学生学习");
}
}
注意事项:注意括号包含的内容。
06.04 面向对象(学生类的使用)
一、创建对象的格式:
1.类名 对象名=new 类名();
2.对象名:合法的标识符。如果是一个单词所有的字母小写,从第二个单词开始首字母大写。
二、如何使用成员变量
对象名.变量名
三、如何使用成员方法
对象名.方法名
06.05面向对象(一个对象的内存图)
06.06面向对象(二个对象的内存图)(了解)
c2=null; //Exception in thread ''mian" java.lang.NullPointerException
at Demo1_Car.main(Demo1-Car.java:19) 空指针异常.
06.07 面向对象(成员变量与局部变量的区别)(掌握)
一、在类中的位置不同
成员变量:在类中方法外
局部变量:在方法 定义中或者方法声明上
二、在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)
三、生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失。
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
四、初始化值不同
成员变量:有默认的初始化值
局部变量:没有默认的初始化值,必须定义、赋值,然后才能使用。
注意事项:
1.局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用就近原则。
2.基本数据变量包括:byte,short,int,long,float,double,boolean,char。
3.引用数据类型变量包括:数组、类、接口、枚举。
06.08面向对象(方法的开工参数是类名的时候如何调用)
一、方法的参数是public void print (Student a ){}//print(new Student ())};
基本数据类型当作形式参数,传递的是具体的值。
引用数据类型当作形式参数,传递的是地址值。
06.09 面向对象(匿名对象)
一、定义:匿名对象是无名字的对象。
二、匿名对象的应用场景
1.匿名对象适合是只调用一次。
可以节省代码。
Car c1=new Car();//创建有名字的对象
c1.run();
new Car().run();//匿名对象调用方法。
new Car().run();//匿名对象适合对方法的一次调用,因为调用多次会产生多个对象,不如用有名字的对象。
2.匿名对象可以做为实际参数传递。
3.匿名对象是否可以调用属性并赋值?有什么意义?
匿名对象可以调用属性,但是无意义。因为调用后就变成垃圾。如果需要赋值,还是需要有名字的对象。
06.10 面向对象(封装)
一、定义:封装是指隐藏的属性和实现细节,公对外提供公共方式。
二、好处:
1.隐藏实现细节,仅对外提供公共访问方式。
2.提高代码的复用性。
3.提高安全性。
三、封装的原则
1.将不需要对外提供的内容都隐藏起来。
2.把属性隐藏,提供公共方法对其访问。
06.11面向对象(private 关键)
一、private关键字的特点:
1.private是一个权限修饰符。
2.可以修饰成员变量和成员方法。
3.被其修饰的成员只能在本类中被访问。
private仅仅是封装的一种体现形式,不能说封装就是私有。
06.12 面向对象(this)
一、this关键字的特点:代表当前对象的引用。
二、应用场景:用来区分成员变量和局部变量重名。