📂java
🔖java
2021-11-16 21:52阅读: 28评论: 0推荐: 0

面向对象

1.什么是面向对象:

就是面向对象编程,以类的方式组织代码,以对象的组织(封装)数据.

2.对象:

对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。
类的实例化可生成对象,一个对象的生命周期包括三个阶段:生成、使用、消除。
当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。当系统内存用尽或调用System.gc( )要求垃圾回收时,垃圾回收线程与系统同步运行

3.类:

类是一个模板,它描述一类对象的行为和状态。
一个类可以包含以下类型变量:
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。

package com.oop.demo01;
//Demo01 类
public class Demo01 {
    //main 方法
    public static void main(String[] args) {
    }
    /*
    * 修饰符 返回值类型 方法名(...){
    * 方法体
    * return 返回值
    * }
    * */
    public String sayHello(){
        return "hello,world";
    }
    public int max(int a,int b){
        return a>b ? a : b;
    }
}

其中,修饰符public,abstract,final 说明了类的属性.

类与对象:

  1. 类与对象
  • 类是一个模板:抽象,对象是一个具体的实例
  1. 方法
  • 定义、调用
  1. 对应的引用
  • 引用类型:基本类型(8)
  • 对象是通过引用来来操作的:栈-->堆
  1. 属性:字段Field 成员变量
  • 默认初始化:
  • 数字:0 0.0
  • char:u0000
  • boolean:false
  • 引用:null
  1. 对象的创建和使用
  • 必须使用new关键字创造对象,构造器Person kuangshen = new Person();
  • 对象的属性: kuangshen.name
  • 对象的方法:kuangsheng.sleep()
  • 静态的属性 属性
  • 动态的行为 方法
  • 封装、继承、多态

创建与初始化对象:

使用new关键字创建对象(使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用).
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的.并且构造器有以下俩个特点:

  1. 必须和类的名字相同.
  2. 必须行没有返回类型,也不能写void.

创建对象

对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
声明:声明一个对象,包括对象名称和对象类型。
实例化:使用关键字 new 来创建一个对象。
初始化:使用 new 创建对象时,会调用构造方法初始化对象。

package com.oop.demo02;

public class Person {
    //一个类什么都不写,他也会存在一个方法
    //显示的定义构造器
    String name;
    //实例化初始值
    //1.使用new关键字,必须要有构造器.本质是在调用构造器
    //2.用来初始化值
    public  Person(){
        this.name = "请将";
    }

   //有参构造 :一旦定义了有参构造,无参就必须显示定义
    public Person(String name){
        this.name = name;
    }
    //alt+insert
}
/*public static void main(String[] args) {

   //new 实例化了一个对象
    Person person = new Person();
    System.out.println(person.name);//null
    构造器:
       1.和类名相同
       2.没有返回值
    作用:
       1. new 本质是在调用构造方法
       2.初始化对象的值
     注意点:
       1.定义有参构造之法,如果想使用无参构造,显示的定义一个无参的构造
       Alt+insert

}*/

4.面向对象的基本特性

1.封装 (数据的隐藏)

1)我们程序的设计要追求"高内聚,低耦合".高内聚是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用.
2)通常,应禁止直接访问一个对象中数据的实际表示,而应通过接口来访问,这称为信息隐藏.

2.继承:

1)继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模.
2)ectends的意思是"扩展".子类是父类的扩展。
3)JAVA只有单继承,没有多继承。
4)继承是类和类之间的一个关系.除此之外,类和类之间的关系还有依赖、组合、聚合等。
5)继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
6)子类和父类之间,从意义上讲应该具有“is a”的关系。

3.多态:

即同一方法可以根据发送对象的同步而采用多种不同的行为方式。
一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多

多态存在的条件:
1.有继承关系
2.子类重写父类方法
3.父类引用指向子类对象
注意:多态的方法的多态,属性没有多态性

多态的注意事项:
1.多带是方法的多态,属性没有多态
2.父类和子类,有联系 报错:classcastexception
3.存在条件:继承关系,方法需要重写,父类的引用指向子类对象!

  1. static 方法,数字类,他不属于实例
  2. final 常量
  3. private方法

抽象类:

abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类.
抽象类中可以没有抽象方法,但是抽象方法一定要声明为抽象类
抽象类,不能使用new关键字来创建对象,它是用来让子类继承的.
抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的.
子类继承抽象类,那么必须实现抽象类没有抽象方法,否则该子类也要声明为抽象类.

super注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造中!
3.super和this不能同时调用构造方法!
VS this:
1.代表的对象不同:
this:本身调用的对象
super:代表父类对象的应用
前提:
this:没有继承也可以使用
super:只能在继承条件下使用
构造方法:
this();本类的构造
super();父类的构造
重写:需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表列表必须相同
3.修饰符:范围可以扩大: public>protected>default>private
4.抛出异常:范围,可以被缩小,但不能扩大;classnotfoundexception - - >exception(大)
5.静态方法:方法的调用只和左边的有关,只和定义的类型有关.
非静态:重写
重写,子类和父类的方法必要一致:方法体不同!
为什么要重写:
1.父类的功能,子类不一定需要,或者比一定满足
alt+insert:override(idea快捷键)

abstract 抽象类:类 extends: 单继承 (接口可以多继承)
抽象方法,只有方法名字,没有方法的实现!
1.不能new这个抽象类,只能靠子类去实现他:约束!
2.抽象类中可以写普通方法
3.抽象方法必须在抽象类中
4.抽象类的所有方法,继承了他的子类,都必须要实现他的方法,除非都是abstract
抽象的抽象:约束

/*    {

    //代码块(匿名代码块)
}
static {
    //静态代码块
}*/

本文作者:freedomAndWind

本文链接:https://www.cnblogs.com/linjiangplus/p/15563966.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   freedomAndWind  阅读(28)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Meet Fi9江澈,果妹
Meet - Fi9江澈,果妹
00:00 / 00:00
An audio error has occurred.

作词 : Fi9江澈

作曲 : Fi9江澈

她不是很瘦 她的个子也够不高

她不是很瘦 她的个子也够不高

她有时很逗 有时候 她也够SAO

每次她化完妆盯着问我 我会说她很丑

但每次离开的时候 我们互相 谁都不肯走

她爱吃粉丝的醋 也爱跟我 生气

她做傻事的时候 也都是和我会有争议

她不化妆的时候 我会刻意的说她很漂亮

总爱素颜的时候 去和别的女生去较量

她喜欢我性格的好 和行为上的屌丝

喜欢我的城市还有运河街道边的小吃

她有时很任性 莫名的跟我吵架

每次她耍小性子 也都会被我都一顿的好骂

她叫我玩游戏 我总故意不跟她玩

每次吵架的时候 总骂我是个渣男

她会讨好我爸妈 也会买礼物给悄悄

每次 卖萌 我也心领神会的笑笑

HOOK:街边的落雨下 我在这个小小世界

你走进我生命 又出现在我面前

谁又能代替呢 我所有的留恋

每次的遇见都是我们的永恒的瞬间

她一直都很敏感 总是常常怕我失去

她不知道 在我心里 她是我写下的诗句

她会在心情不好的时候 跟朋友去酗酒

大醉之后会说以后的路 她会陪着我去走

总爱问我分手了 会不会像以前 那样去对她

提些奇怪的问题 手机屏保为什不是她

说我对你这么好 你竟然想要跟我分手

哎 这个贱男人 我就知道 你可真狗

这个不可理喻的女人让我又爱又恨

生病的时候让人心疼 看起来又乖又笨

就算吵架的时候 不爱跟你讲道理

在人群中我依然 一眼就能找到你

我可以为 她遮风为她挡雨

也可以陪她一整天 依偎在我房里

还记得第一次见她 是我 第一次的演出

还记得她也曾在 夜里 为我闭着眼哭

HOOK:街边的落雨下 我在这个小小世界

你走进我生命 又出现在我面前

谁又能代替呢 我所有的留恋

每次的遇见都是我们的永恒的瞬间

街边的落雨下 我在这个小小世界

你走进我生命 又出现在我面前

谁又能代替呢 我所有的留恋

每次的遇见都是我们的永恒的瞬间

混音:Fi9江澈

混音:Fi9江澈

统筹:杨冰

OP:汇音文化