面向对象编程
----将某一类事物抽象化,确定如何操作数据然后再考虑如何操作数据。然后再考虑下如何组织数据。
属性:用来描述对象的数据元素称为对象的属性。
方法:对 对象的属性进行的操作称为对象的方法。
1、类
类是描述对象特征和对象行为,类是对象的模板。
修饰符 类型 类名称 { }
例如: public class DayTest
{
}
2、构造器:
(构造方法) 名称必须和类名一致。(一个类中可以有多个构造器,但是构造器参数列表必须不同,
系统也会提供默认的构造方法)
例如:Moblile phone=new Moblile("",120);// 参数一致性;
3、方法的重载
一个类中可以定义有相同的名字,但是参数列表不同 1、参数类型 2、参数格式 3、参数顺序
例如:
public class DayTest{
public DayTest(){
}
public DayTest(int i){
}
public DayTest(int i,int j){
}
public DayTest(double i){
}
}
4、方法的参数传递
1、基本数据类型传递的是该数据的值本身。
2、引用数据类型传递的是对象的引用而非对象本身。
3、如果在调用方法中,出现 new 是开辟了新空间。
(参数传递 3条)
例如:cao_3-23 包:cao.demo1
5、封装--private
--在一个类中封装属性,使用private 修饰符,这个修饰符可以,使用 get set 方法对属性进行封装。
例如:cao_3-23 包:cao_demo0
6、static 关键字
用static 声明的成员变量是静态成员变量,它是该类的公用变量,被使用时,进行初始化,
对于该类的所有对象,static成员变量只有一份。
1.static修饰的方法内部,只能使用static修饰的成员变量(方法和属性)
2.非static修饰的方法内部,可以使用static修饰的成员变量
3.在static方法内,不能直接使用非static方法
4.在static方法内,可以使用static方法
5.static是修饰符,不能声明构造器 ¥¥
static StaticMethod(){//错误的
6.static的调用:
①在本类中,可以使用方法名调用,见cMethod()
②在其他类中,可以使用 类名.方法名() 的方式调用static方法,无须创建对象调用
7、导入包;例如:import java.util.*;
//
面向对象– 继承 封装 多态
1、继承 特点;
-面向对象的重要特征
-可以实现代码的复用
-子类可继承父类的方法和属性
-类的构造器(构造方法)不能被继承。
(继承 4条)
例如:cao_3-24 包:cao.demo0;
几个重要 修饰符的 解释:
1、private修饰符:
(1)只能在本类中使用,在其他类中使用是 通过 get set方法。
2、protected修饰符
(2)可以再本类中使用,也可以在本包中使用
(3)在继承时,子类无论在哪个包中,都都可以使用。
(4)如果不是 继承,在其他类中即使导入包也不能 使用。
3、public修饰符
一句话:通用;
4、default修饰符:
表示一种不加任何修饰符的状态。
2、方法的重写:
方法重写的原则:
1、重写方法必须和父类中的被重写的方法具有相同的
(1)方法名称、(2)输入参数和(3)返回值类型。
2、不能使用比父类中更严格的 访问权限。
就是:父类是protected 那么子类不能是 private
3、重写方法不能比父类重写方法抛出 更多异常。(指范围)
例子:cao_3_24 包 cao.demo1
3、super关键字
用法:
1、访问父类的成员变量
super.变量
2、访问父类中的方法
super.方法(参数列表)
3、访问父类的构造器
super(参数列表)
4、super 具体使用:
1、位置: 一定要写在子类构造器中.
2、调用:如果调用父类无参构造器,可以省略,即系统默认;
(super 4 条)
例如:
class SuperClass{
int x;
SuperClass(){
x=3;
System.out.println("in SuperClass x="+x);
}
void doSomething(){
System.out.println("in SuperClass.doSomething()");
}
}
class SubClass extends SuperClass{
int x;
SubClass(){
super();
x=5;// 要放在方法中的第一句
System.out.println("in SubClass :x:"+x);
}
void doSomething(){
super.dosomething();//
System.out.println("in SubClass .doSomthing()");
System.out.println("super .x="+super.x+"sub.x"+x);
}
public static void main(String args[]){
SubClass subC=new SubClass();
subC.doSomething();
}
}
4、this关键字:
-1、在类本身的方法或构造器中引用该类的实例变量和方法。
-2、将当前对象作为参数传递给其它方法或构造器。
-3、用来调用其他的重载的构造器(必须写在第一行)
- this总结
- 1.作为本类对象,调用属性和方法
- 2.作为本类构造器使用,使用时必须用于构造器内且在第一行,还可以重载构造器
- 3.作为参数进行传递,与super不同,super不能作参数传递
4.this() 作为构造器不能用于普通方法。
(this 4条)5、初始化块:
最大的特点:就是 可以优先被执行;
this 和 super 比较:
this super
访问属性: 先在子类中查找,后在父类中 直接在父类
访问方法: 现在子类中找,没有再在父类中找 直接访问父类方法
调用构造: 调用本类中的其他构造方法 调用父类的构造方法
特殊: 指自身的引用 –
This 和 super 都不能在static 方法中调用。
super 只与父有关,,,this 是先子后父;
重载 和 重写的区别
范围:重写是 继承(子类) 重载是同一个类
对方法的要求: 重写和父类一致(名字和参数和返回值) 重载 (方法名一致,参数列表不同)
对访问权限的要求 重写不能比父类访问权限更严格, 重载 对访问权限有要求。
、、、、、、、、、、、、、、、、、