1.OOP:面向对象编程(必须掌握)–怎么编程
OOAD:面向 对象分析与设计(扩展)–为什么这么写?
2.面向对象的语言和面向过程语言的区别
面向过程语言(c):最小精度是过程(函数、方法)
方法就是一个功能,也是最小的单位,完成之后的功能不能变。
面向对象语言(java):最小精度是对象()
方法就是一个功能,最小的单位是实现方法功能时使用的对象,方法完成编写之后是可变的。
3.什么是对象
对象分为:现实世界中的对象和java中的对象
现实世界中的对象:一切客观存在的事物
java中的对象:就是一个变量,变量比较特殊,是一个叫做”Class ”类型的变量。
Int a=1; a是变量,类型是int;
String s=”lina”; s是变量,类型是String;
String 是一个“Class”,s是一个String类型的对象。
Java中的对象主要是用来表示现实世界中存在的对象。
现实:NBA:库里 属性(静态的特征):名字 国籍 打篮球…
行为(动态的特征):投三分() 卖萌()
Java对象: 属性:名字 国籍 打篮球…
方法/函数:罚篮()
4.什么事类Class?
类:就是一个我们自己定义的数据类型。
int a=3;
String s;
类是一个数据类型,数据类型的作用:规范了变量的字面值。
所有的对象类型的变量,由对应的类创建。
要创建一个我家房子的对象,就要有房子的类;
要创建一个你的女神的对象,就要有女神的类;
…
在java中,必须先有类,才能创建java中的属于这个类的对象。
类怎么来?从哪里来?
类是从大量的现实世界的对象中抽取相同的属性和方法进行封装的结果。
大量的现实的对象—>抽取相同的属性和行为–>封装–>类—>new—>java中的对象
大量的演员–>相同的属性(姓名、身高、…)行为(演戏、 话剧…)—>
演员类(属性:姓名、身高 方法:演戏(){} 话剧(){})–>new 演员对象
类与对象的关系?
类是java中对象的模板;
类是对大量对象的抽象。
5.如何创建一个类对象Class?
类是一个特殊的数据类型,自定义的数据类型。
类中只有两种:属性(变量)和方法
语法规则:
public class 类名{
属性
方法
}
Public:是访问修饰符的一种;
Class :是创建类的关键字。
6.如何使用类创建对象?
语法规则:使用new关键字来实例化(创建)对象。
类名 对象名=new 类名();
7.引用与实例
类名 引用=new 类名();
New 关键字在创建一个实例。实例是内存中一块存储数据空间。
类名 引用:引用是一个指向实例的引用。
Student stu=new Student();
8.实例属性和实例方法
类中只能有:属性与方法;
实例属性:在类中直接声明的变量;
实例方法:在类中直接声明的方法;
属性就是变量,学生类中有姓名和年龄两个属性。
实例方法:就是一个函数/方法;直接定义在类中。
在实例方法中可以直接使用类中的实例属性。
9.实例属相和实例方法的使用
实例属性和实例方法是属于类的实例的。
在类的外部要使用实例属性和方法,就必须先有实例。
通过实例才能使用属性和方法。
格式:
实例的引用名.属性=属性值;
实例的引用名.方法();
10.javaBean(java类)的编码规范
10.1 必须有默认构造方法
10.2属性必须私有:不能再外部直接访问
10.3 提供公共的set&get方法,外部要通过get&set方法访问私有属性:
命名规则:private int id;
public int getId(){}
public void setId(int id){this.id=id}
11.什么事构造方法?
构造方法也是方法,是特殊的方法
11.1 构造方法名称必须与类名相同
11.2 没有返回类型的说明 void–是返回类型说明
11.3不能使用实例的引用打点调用(自己不能直接调用)
谁调用?什么时候调用?
当实例化这个类的时候,就是构造方法被调用的时候。
当使用new关键字实例化对象时,系统自动调用匹配的构造方法。
一个类中必须有构造方法,因为实例化 必须调用构造方法。
当我们自己编写的类中没有编写构造方法的时候,系统会自动为这个类添加一个构造方法。
这个构造方法称为隐式构造方法。
隐式构造方法与默认的构造方法一致。
默认构造方法的格式:没有参数的构造方法。
参数化构造方法:有参数的构造方法。
12.构造方法的作用
构造方法就是规定了实例化对象时的格式。
我们编写的类,有什么样格式的构造方法,这个类就只能用什么格式实例化。
我们一般情况下用构造方法:初始化类的属性
使用参数化构造方法:在实例化的同时为属性赋值
13.this关键字
This是一个引用,是一个在实例内部指向实例本身的引用。
This可以区分实例变量和局部变量
Goods goods=new Goods();
是一个在实例内部指向实例本身的引用。
this可以实现的功能:
13.1 使用this可以调用本实例的实例属性
This.实例属性名称
13.2 使用this可以调用本实例的实例方法
This.实例方法();
13.3 使用this可以调用本实例的构造方法
a)只能在本类的构造方法中调用本类的其他构造方法
b)只能出现在构造方法的第一行
c)格式:this(参数);
14.值传递和引用传递
不同的数据类型做函数的参数
基本数据类型和引用数据类型做函数的参数,结果有很大的不同。
基本数据类型作为参数时,直接使用数值的副本给形式参数赋值,实参和形参是两个完全没有关系的变量。
引用数据类型作为参数时直接使用引用类型变量的引用(地址)赋值给形参,实参和形参引用的世同一块空间。
15.函数的重载(overloading)
定义:函数的名称相同,但是形式参数(顺序、个数、类型)不同。
意义:对方法的调用者屏蔽因方法参数不同所造的差异
PS:只有返回值不同的两个同名函数不能构成重载