面向对象

面向對象

.
:是具有相同属性和方法的多个对象的抽象。
创建方法: class 类名{}
(在同一个java文件中可以创建多个不同类名的类,但是只能有一个用public修饰的。用public修饰的类名必须与java文件的名字一致。)
一个类中可书写的东西:

  1. 属性
    书写方法与要求: 数据类型 变量名;(可直接赋值 也可不赋值)
    (数据类型可以是基本数据类型 也可以是引用数据类型)
    Public 公共的
    Private 私有的:被其修饰的属性只能被当前类直接调用,其他类想调用时,只能通过get方法和set方法来调用。
    static :静态属性可以被非静态方法和静态方法直接调用。非静态属性只能被非静态方法直接调用
    特别的: 一个类可以被另外一个类当做属性来引用,被引用的就是该类的属性。
    全局属性与局部属性
    全局属性:
    归当前类所有,他会有默认值,可以被当前所有非静态static方法调用。
    局部属性:
    归当前区域(方法)所有,局部变量在使用之前必须进行赋值,没有默认值。
    当局部变量与全局变量名字相同时,采取局部优先原则。

  2. 构造方法
    书写方法
    有参构造方法:public 类名(参数){}
    注意: 如果传参数,根据参数的个数调用对应有参数构造方法,实际传的参数的类型必须与你要使用的有参数构造方法的参数类型以及类型的顺序一致
    无参构造方法:public 类名(){}
    注意:当一个类没有声明构造方法时,会默认存在一个无参构造方法。当你申明了构造方法后,默认的无参构造方法将不会存在。

  3. 方法
    书写方法
    【访问限定符】 【修饰符】 返回值类型 方法名(【参数…】){方法体 java代码}
    访问限定符:限定方法的访问作用域 public
    修饰符:static静态 final最终 abstract抽象
    Static: 被static修饰的属性和方法都属于类所有。在使用属性或者方法的时候可以直接是类名.方法名进行调用
    返回值类型: 有返回值(可以是任何类型:基本、引用),如果方法有返回值name必须 使用return关键字并且返回的内容必须与返回值类型一致 无返回值void
    参数:可以是任何类型 可以是多个。
    方法的种类
    1.有参数有返回值方法
    书写方法:public 返回值类型 方法名(参数){方法体
    return 返回值;}
    注意: 在调用的时候需要传入对应的参数,使用return关键字。 参数的类型可以是类类型。
    2.有参数无返回值方法
    书写方法:public void 方法名(参数){方法体}

    **方法的使用**:   如果方法没有使用修饰符进行定义,那么需要使用对象.方法名(【参数】)进行调用
    **注意**:  在调用方法的时候,需要传入与形式参数类型一样的实际参数。形式参数可以有多个,如果形参是多个的话,实际参数的个数以及参数类型必须一致。
    3.无参有返回值方法
    **书写格式**:public  返回值类型 方法名(){方法体
    									return 返回值;			}
    4.无参数无返回值方法
    **书写格式**:public void 方法名(){方法体}
    **特别的**:
    静态修饰符的使用
    	  static
    	1)	Static  数据类型  属性名;  静态属性  全局属性
       非静态属性只能被非静态方法直接调用,静态属性可以被静态或非静态方法直接调用。
       静态属性属于类的,非静态属性属于对象的。
    	2)	Public static  返回值类型  方法名(【参数】){}
       静态方法归类所有, 类名.方法名(【参数】);
    	非静态方法归对象所有。对象名.方法名(【参数】);
    	   静态方法也可以被对象进行调用
    	      如果是静态方法,直接使用类名.方法名
    
  4. 代码块
    代码块属于类所有,随着对象的创建被调用。每一次创建对象的时候都会被调用一次。

  5. 静态代码块
    在程序启动类被加载到内存中的时候就会被调用,并且只调用一次。
    对象
    对象:对象是通过new类得到,对象是具有自身属性和方法的类的一个具体的实例。
    (创建对象时必须在main方法中创建)
    特性
    1.抽象
    2.封装
    为了使自己的属性更加安全
    获取属性
    给属性赋值
    a. 对私有化的属性进行封装
    b. 封装就是使用方法来进行对属性的操作
    一般封装的方法都称为get()和set()赋值,
    每一个私有属性都对应的有一个get和一个set方法,方法的名是get或者set加上属性名字的首字母大写。 getName setName
    3.继承
    两个类拥有关系,使用extends关键。
    Public class aa extends bb{} AA与BB是子父类关系。Aa是子类 BB是父类。
    继承的特点:
    ① 只能是单继承 一个类中只能有一个直接父类。
    ② 一个类可以有多个子类。
    ③ 子类继承了父类就拥有父类的所有属性和方法
    ④ 子类可以有自己的独有的属性和方法。
    ⑤ 可以在子类中写一个和父类一样的方法,方法的重写:在两个类中(子父类),方法的名字和参数以及参数的类型、顺序、个数都一样。方法的返回值也必须一致
    ⑥ 如果A类继承了B类,B类继承了C 。那么A类也就拥有了C类的所有属性和方法。
    ⑦ 构造方法不能被继承
    4.多态
    同一个对象拥有多种状态:
    向上转型 子类转父类 Car cx = new JiaoCar();
    编译时状态: 子类=子类
    运行时状态: 子类=父类 将子类独有属性和方法进行隐藏
    向下转型 父类转子类 JiaoCar jc = (JiaoCar)cx;
    必须是进行向上转型之后的那个父类对象,进行强制转换赋值给子类对象。
    转型之后就可以调用子类独有的属性和方法。

    instanceOf 判断两个是不是子父类
    

    将向上转型时候得到的对象与父类对象进行比较,看看是否是同类型的对象。
    boolean bool = cx instanceof Car;

多态的体现:重写和重载

getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
可以重写toString方法,不是只把object的方法重写一遍。二十为了让我们能够更加清楚的看到我们的对象到底有什么内容。
以后的所有类中必须重写toString方法。

Equals 也是Object的方法
当对象与对象进行比较的时候:使用==比较的是对象的地址,使用equals默认比较的也是地址值,我们可以重写equals方法,然后根据自己重写equals里面的比较方式进行比较
1、包的介绍和访问限定符
1)使用import语句导入类,在前边的程序中,我们已经使用过,其应用的一般格式如下:
import 包名.*; //可以使用包中所有的类
或: import 包名.类名; //只装入包中类名指定的类
2)在程序中直接引用类包中所需要的类。其引用的一般格式是:
包名.类名
例如,可以使用如下语句在程序中直接创建一个日期对象:
java.util.Date date1 = new java.util.Date( );
访问限定符

  1. 默认访问限定
  2. public访问限定 公共的
    3.private(私有的)访问限定
    4.protected(保护的)访问限定 保护的就是自己在其他类中不能被直接调用。 可以被继承但是不能被直接调用

2、抽象类
访问限定符 abstract class 类名{
属性
方法:
普通方法 访问限定符 返回值类型 名字(【参数】){}

抽象方法 访问限定符 abstract 返回值类型 名字(【参数】);
}
抽象类的特点:
1)所谓抽象方法,是指在类中仅仅声明了类的行为,并没有真正实现行为的代码。
2)抽象方法只能存在于抽象类中,正像刚才所言,一个类中只要有一个方法是抽象的,则这个类就是抽象的。类中只要有抽象方法,那么这个类必须被声明为抽象类
3)构造方法、静态(static)方法、最终(final)方法和私有(private)方法不能被声明为抽象的方法。构造方法不能是抽象的,抽象方法不能是私有的

4)一个抽象类中可以有一个或多个抽象方法,也可以没有抽象方法。
5)抽象类只能被继承(派生子类)而不能创建具体对象即不能被实例化。抽象类不能自己实例化自己
6)一个类如果继承了抽象类,那么就必须重写抽象中的所有抽象方法。重写抽象方法有具体的实现
Public abstract void getAll();抽象方法
Public void getAll(){};重写的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值