一.概述
1.概念:一切客观存在的事物都是对象,万物皆对象。(object Oriented)。
建立对象的思维:
(1)先整体,再局部
(2)先抽象,再具体
(3)能做什么,再做什么
2.对象具有:特征(属性)和行为(方法)。
3.面向对象的三大特征:
①.继承 ②.封装 ③.多态
4.类和对象的含义:
类是对象的抽象! 对象是类的具体!
类:是对具有相同特征或属性,具有相同行为能力的一类具体事务的描述或称呼。(一个类,只有一个主函数)
对象:是这一类事物带有属性值,具有具体行为的个体或者实例。
5.类的定义
概念:在一组相同或类似的对象中进行抽取共性属性和方法,保留关注的部分。
①定义属性:通过变量表示 实例变量
语法: 数据类型 变量名;
定义位置: 类中,方法外。
②定义方法:通过函数表示
语法:
public 返回值类型 方法名(形参列表){
方法的主体
}
注意:没有static
6.创建对象
语法: 类名 对象名 = new 类名();
为属性赋值的语法: 对象名.属性名 = 值;
调用方法的语法: 对象名.方法名();
7.实例变量(背)
性质 | 实例变量 | 局部变量 |
---|---|---|
默认值 | 有,和数组一致 | 无,必须先赋值再使用 |
定义的位置 | 类中,方法外 | 方法内部 |
作用范围 | 本类有效 | 定义行到所在代码块结束 |
命名冲突 | 不可重名 | 不可重名 |
注:实例变量和局部变量可以重名,优先访问局部变量。
8.构造方法
(1)概念:类中的特殊方法,用来创建对象。 分为:无参构造和有参构造
无参构造:每个类中都有一个默认的无参的构造方法。
有参构造:主要是方便为属性赋值,参数名要见名知意。
注意:如果定义了一个带参数的构造方法,系统则不再提供默认的无参。
(2)要求:①方法名和类名一致 ②没有返回值类型 ③不能手动调用
注意:如果类中没有显示提供构造方法,编译器会默认提供无参构造方法
9.方法的重载
1.概念:一个类中可以存在多个重名方法
2.要求:①方法名相同 ②参数列表不同(类型,个数,顺序)
③与修饰符返回值类型无关
好处:屏蔽使用差异
3.构造方法重载:
作用:构造方法支持重载,主要是为了方便属性赋值
二.static关键字
1.概念:
(1).①静态可以修饰属性和方法。 ②修饰属性我们称为静态属性(类属性),修饰方法称为静态方法(类方法)。③静态成员是全类所有对象共享的成员,只有一份,不因创建多个对象产生多份。
(2).调整静态方法:在同一类中有多个静态方法之间互相调用可以直接写“静态方法的名称”。 在不同类中,调用其他类的静态方法语法: 类名.静态方法名称
(3).static 特点:
- 静态方法可以直接访问静态成员
- 静态方法不能直接访问非静态成员,可以通过创新对象进行访问。
(4)调用static方法: 类名.方法名();
2.具体代码例子:
//普通的成员变量
int a;
//静态的成员变量
static int b;
//普通的方法
public void testMethod(){
// 普通属性
System.out.println(a);
//静态变量
System.out.println(b);
//普通方法
testMethod2();
//静态方法
testStaticMethod();
System.out.println("test method...");
public void testMethod2(){
System.out.println("test method2");
}
//静态的方法
public static void testStaticMethod(){
System.out.println("test static method..."); }
public static void main(String[] args){
//普通的成员变量怎么访问---属性的访问
StaticDemo staticDemo=new StaticDemo();
staticDemo.a=10;
System.out.println(staticDemo.a);
//静态变量
StaticDemo.b=5;
System.out.println(StaticDemo.b);
//普通方法怎么访问
staticDemo.testMethod();
//静态方法怎么访问
StaticDemo.testStaticMethod();
//在普通方法中能不能使用 普通属性 静态变量 普通方法 静态方法 ok
StaticDemo staticDemo=new StaticDemo();
staticDemo.testMethod();
//在静态方法中能不能使用 普通属性(X) 静态变量(对) 普通方法 (X) 静态方法(对)
//普通的变量
System.out.println(a);
//静态变量
System.out.println(b);
//普通的方法
testMethod();
//静态的方法
testStaticMethod();
三.this关键字
1.概念:表示当前对象,一般用于构造方法
2.this 的用法:
(1) this属性:表示调用本类中的实例属性
(2) this.方法名():表示调用本类中的实例方法
(3) this( )和this(实参):分别表示调用本类中的无参构造和带参构造
注意:this( )和this(实参)必须放在构造方法的第一行