java——面对对象

     2022-03-17     435

关键词:

软件出现的目的:
*用计算机的语言来描述世界
*用计算机解决现实世界的问题

面向对象的思想 描述 面向对象的世界

面向对象设计和开发程序的好处:
*交流更加流畅
*提高设计和开发效率

构造方法:
构造方法是用来描述对象创建的过程,构造方法在对象创建的过程中被调用

语法:
访问修饰符 构造方法名(){
//初始化代码
}
注意:构造方法名必须和类名相同;没有返回值;


方法重载:
*方法名相同
*参数项不同
*与返回值和访问修饰符无关


this关键字用法:

调用属性:
this.属性名=100;

调用方法:
this.方法名();

调用构造方法:
this();
this(参数);
如何使用:必须是构造方法中的一条语句

 

面向对象的三大特征之一—封装

封装的概念:
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息
的操作和访问;

封装的好处:
*隐藏类的实现细节
*只能通过规定方法访问数据
*方便加入控制语句
*方便修改实现

封装的步骤:
1.修改属性的可见性
2.创建getter和setter方法
3.在gettersetter方法中加入属性控制语句

 

static修饰符:
static的资源属于类级别的资源,静态资源,对于类的所有实例对象共享
static关键字可以用来修饰属性,方法,代码块和内部类
static修饰符的资源,在类加载期间执行

1、static修饰的属性:
static关键字修饰的属性,属于对类所有实例对象共享的变量
访问静态的属性:类名.属性名

2、static修饰方法:
static关键字修饰的方法,属于静态方法,可以直接类名.方法名()进行调用.一般
的是静态方法作为工具方法
静态方法中不能调用对象的资源(对象的属性和方法)

3、static修饰的代码块
在类加载的时候执行,因为类只加载一次,所以static的代码块也只运行一次,
一般是使用static代码块来加载一些静态资源,比如说配置文件;
{
这里就是代码块,和构造方法一样,在对象创建时候执行
}
static{
这里就是静态代码块
}

 

Static和非Static的区别
1.属性
2.方法
3.调用方法
4.归属
static全部属于类
非static属于实例和对象

 

继承:
一、继承的前提条件:
子类和父类之间,必须要满足子类is a父类的逻辑关系,才能继承

二、继承的优点
1.提高代码之间的重用性,(继承之后子类共用父类的代码)
2.提高了代码后期的可维护性(后期代码中需要添加或删除某些代码,只需修改父类代码即可)

三、继承的步骤:
1.将多个类中共有的属性和方法提取出来,建立一个父类
2.在子类后面使用extends关键字完成继承, 子类 extends 父类
3.在子类中可以调用父类的代码
注意:在java中属于单继承,在extends关键字后面只能有一个父类

 

子类访问父类成员:

访问父类构造方法:
super();
super(参数);

访问父类属性:
super.属性名;

访问父类方法:
super.方法名();

注意:this和super都必须出现在第一行,他们之间是互斥的

 

子类不能继承父类的那些资源:
1.private成员
2.子类与父类不在同包,使用默认访问权限的成员
3.构造方法


访问修饰符:
1.private 私有的
2.默认的(friendly) 默认
3.protected 受保护的
4.public 公共的

 

多重继承关系的初始化顺序是怎样的:
1.父类属性
2.父类构造方法
3.子类属性
4.子类构造方法


对象初始化过程:
第一步:在创建类之前,检查类是否已加载(检查硬盘上的.class的文件是否加载到内存中)
如果没有加载就先加载父类的文件,再加载本类的文件
java使用的策略称为:懒惰式加载(按需加载)用到的时候加载,只加载一次。
第二部:分配对象空间,递归分配所有父类的属性空间,
属性会自动的初始化为"0"值;
第三步:属性赋值
第四步:调用父类的构造方法(默认调用父类的无参构造方法)
第五步:调用本类的构造方法


方法重写:
*方法名相同
*参数列表相同
*返回类型相同或是其子类
*子类访问权限大于或等于父类

 

super关键字访问父类的成员:
super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问父类的private成员

 

abstract关键字:
abstract是抽象的意思,可以修饰类和方法,修饰类我们称之为抽象类,修饰方法我们称之为抽象方法
1.abstract 修饰类,抽象类
public abstract class 类名(){}
抽象类用来表示一些抽象的概念

抽象类特点:
*抽象类不能被实例化
*抽象类可以有属性、方法、构造方法,都是用来给子类继承
*抽象类中不一定都是抽象方法。

2.abstract 修饰方法,抽象方法
访问修饰符 abstract 返回值类型 方法名(参数列表);
抽象方法不需要自己实现,由子类来实现

抽象方法特点:
*抽象方法没有方法体
*抽象方法必须出现在抽象类中
*一个类继承抽象类之后必须要实现父类所有的抽象方法

3.抽象类可以继承抽象类

 

final关键字,表示最终的
1.final可以用来修饰类、方法和属性。
2.final修饰的类的不能再被继承。比如:String String是final修饰的类,不能被继承

3.final修饰的方法,不能再被子类重写

4.final修饰的变量初始化以后不能再发生改变
常量规范定义:public static final int ace=12;
final修饰的引用数据类型,引用地址不能发生改变,但是只限定第一层,引用类型的属性值是可以改变的

 


多态:
生活中:
同一种事物,由于条件不同,产生的结果不同。

程序中:
同一种引用类型,使用不同的实例而执行不同的操

实现多态的两个要素:
1.子类重写父类方法
2.使用父类的类型

子类到父类的转换(向上转型):
Pet pet=new Dog();

实现多态的两种形式:
*使用父类作为方法形参实现多态
*使用父类作为方法返回值实现多态


父类到子类的转换(向下转型)
强制类型转换
前提是:已经向上转型
称为:还原行为
语法:
子类名 子类自命名=(子类名) 父类名;
Dog dog = (Dog) pet;

instanceof运算符:
判断对象是否是属于类和接口,返回boolean类型
对象 instanceof 类或接口软件出现的目的:

*用计算机的语言来描述世界

*用计算机解决现实世界的问题

 

面向对象的思想   描述  面向对象的世界

 

面向对象设计和开发程序的好处:

*交流更加流畅

*提高射击和开发效率

 

构造方法:

构造方法是用来描述对象创建的过程,构造方法在对象创建的过程中被调用

 

语法:

    访问修饰符 构造方法名(){

      //初始化代码

}

注意:构造方法名必须和类名相同;没有返回值;

 

  

方法重载:

*方法名相同

*参数项不同

*与返回值和访问修饰符无关

 

 

this关键字用法:

 

调用属性:

this.属性名=100;

 

调用方法:

 this.方法名();

 

调用构造方法:

this();

this(参数);

如何使用:必须是构造方法中的一条语句

 

 

 

面向对象的三大特征之一—封装

 

   封装的概念:

   封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息

的操作和访问;

 

  封装的好处:

  *隐藏类的实现细节

  *只能通过规定方法访问数据

  *方便加入控制语句

  *方便修改实现

 

  封装的步骤:

    1.修改属性的可见性

    2.创建getter和setter方法

    3.在gettersetter方法中加入属性控制语句

 

 

 

static修饰符:

static的资源属于类级别的资源,静态资源,对于类的所有实例对象共享

static关键字可以用来修饰属性,方法,代码块和内部类

static修饰符的资源,在类加载期间执行

 

1、static修饰的属性: 

static关键字修饰的属性,属于对类所有实例对象共享的变量

访问静态的属性:类名.属性名 

 

2、static修饰方法:

static关键字修饰的方法,属于静态方法,可以直接类名.方法名()进行调用.一般

的是静态方法作为工具方法

静态方法中不能调用对象的资源(对象的属性和方法)

 

3、static修饰的代码块

在类加载的时候执行,因为类只加载一次,所以static的代码块也只运行一次,

一般是使用static代码块来加载一些静态资源,比如说配置文件;

{

这里就是代码块,和构造方法一样,在对象创建时候执行

static{

这里就是静态代码块

}

 

 

 

Static和非Static的区别

1.属性

2.方法

3.调用方法

4.归属

static全部属于类

非static属于实例和对象

 

 

 

继承:

一、继承的前提条件:

子类和父类之间,必须要满足子类is a父类的逻辑关系,才能继承

 

二、继承的优点

1.提高代码之间的重用性,(继承之后子类共用父类的代码)

 2.提高了代码后期的可维护性(后期代码中需要添加或删除某些代码,只需修改父类代码即可)

 

三、继承的步骤:

1.将多个类中共有的属性和方法提取出来,建立一个父类

2.在子类后面使用extends关键字完成继承,   子类 extends  父类

3.在子类中可以调用父类的代码

注意:在java中属于单继承,在extends关键字后面只能有一个父类

 

 

 

子类访问父类成员:

 

访问父类构造方法:

super();

super(参数);

 

访问父类属性:

super.属性名;

 

访问父类方法:

super.方法名();

 

注意:this和super都必须出现在第一行,他们之间是互斥的

 

 

 

子类不能继承父类的那些资源:

1.private成员

2.子类与父类不在同包,使用默认访问权限的成员

3.构造方法

 

 

访问修饰符:

1.private             私有的

2.默认的(friendly)  默认

3.protected           受保护的

4.public              公共的

 

 

 

多重继承关系的初始化顺序是怎样的:

1.父类属性

2.父类构造方法

3.子类属性

4.子类构造方法

 

 

对象初始化过程:

第一步:在创建类之前,检查类是否已加载(检查硬盘上的.class的文件是否加载到内存中)

如果没有加载就先加载父类的文件,再加载本类的文件

java使用的策略称为:懒惰式加载(按需加载)用到的时候加载,只加载一次。

第二部:分配对象空间,递归分配所有父类的属性空间,

属性会自动的初始化为"0"值;

第三步:属性赋值

第四步:调用父类的构造方法(默认调用父类的无参构造方法)

第五步:调用本类的构造方法

 

 

方法重写:

*方法名相同

*参数列表相同

*返回类型相同或是其子类

*子类访问权限大于或等于父类

 

 

 

super关键字访问父类的成员:

super只能出现在子类的方法和构造方法中

super调用构造方法时,只能是第一句

super不能访问父类的private成员

 

 

 

abstract关键字:

abstract是抽象的意思,可以修饰类和方法,修饰类我们称之为抽象类,修饰方法我们称之为抽象方法

1.abstract 修饰类,抽象类

   public abstract class 类名(){}

 抽象类用来表示一些抽象的概念

 

抽象类特点:

 *抽象类不能被实例化

 *抽象类可以有属性、方法、构造方法,都是用来给子类继承

 *抽象类中不一定都是抽象方法。

 

2.abstract 修饰方法,抽象方法

      访问修饰符 abstract 返回值类型 方法名(参数列表);

   抽象方法不需要自己实现,由子类来实现

   

  抽象方法特点:

    *抽象方法没有方法体

    *抽象方法必须出现在抽象类中

    *一个类继承抽象类之后必须要实现父类所有的抽象方法

 

 3.抽象类可以继承抽象类

 

 

 

final关键字,表示最终的

1.final可以用来修饰类、方法和属性。

2.final修饰的类的不能再被继承。比如:String  String是final修饰的类,不能被继承

 

3.final修饰的方法,不能再被子类重写

 

4.final修饰的变量初始化以后不能再发生改变

常量规范定义:public static final int ace=12;

final修饰的引用数据类型,引用地址不能发生改变,但是只限定第一层,引用类型的属性值是可以改变的

 

 

 

 

多态:

生活中:

同一种事物,由于条件不同,产生的结果不同。

 

程序中:

同一种引用类型,使用不同的实例而执行不同的操

 

实现多态的两个要素:

1.子类重写父类方法

2.使用父类的类型

 

子类到父类的转换(向上转型):

Pet pet=new Dog();

 

实现多态的两种形式:

*使用父类作为方法形参实现多态

*使用父类作为方法返回值实现多态

 

 

父类到子类的转换(向下转型)

强制类型转换

前提是:已经向上转型

称为:还原行为

语法:

子类名 子类自命名=(子类名) 父类名;

Dog     dog     =  (Dog)  pet;

 

instanceof运算符:

判断对象是否是属于类和接口,返回boolean类型

对象  instanceof 类或接口

软件出现的目的:*用计算机的语言来描述世界*用计算机解决现实世界的问题
面向对象的思想   描述  面向对象的世界
面向对象设计和开发程序的好处:*交流更加流畅*提高射击和开发效率
构造方法:构造方法是用来描述对象创建的过程,构造方法在对象创建的过程中被调用
语法:    访问修饰符 构造方法名(){      //初始化代码}注意:构造方法名必须和类名相同;没有返回值;
  方法重载:*方法名相同*参数项不同*与返回值和访问修饰符无关

this关键字用法:
调用属性:this.属性名=100;
调用方法: this.方法名();
调用构造方法:this();this(参数);如何使用:必须是构造方法中的一条语句


面向对象的三大特征之一—封装    封装的概念:   封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问;
  封装的好处:  *隐藏类的实现细节  *只能通过规定方法访问数据  *方便加入控制语句  *方便修改实现
  封装的步骤:    1.修改属性的可见性    2.创建getter和setter方法    3.在gettersetter方法中加入属性控制语句


static修饰符:static的资源属于类级别的资源,静态资源,对于类的所有实例对象共享static关键字可以用来修饰属性,方法,代码块和内部类static修饰符的资源,在类加载期间执行
1、static修饰的属性: static关键字修饰的属性,属于对类所有实例对象共享的变量访问静态的属性:类名.属性名 
2、static修饰方法:static关键字修饰的方法,属于静态方法,可以直接类名.方法名()进行调用.一般的是静态方法作为工具方法静态方法中不能调用对象的资源(对象的属性和方法)
3、static修饰的代码块在类加载的时候执行,因为类只加载一次,所以static的代码块也只运行一次,一般是使用static代码块来加载一些静态资源,比如说配置文件;{这里就是代码块,和构造方法一样,在对象创建时候执行} static{这里就是静态代码块}


Static和非Static的区别1.属性2.方法3.调用方法4.归属static全部属于类非static属于实例和对象


继承:一、继承的前提条件:子类和父类之间,必须要满足子类is a父类的逻辑关系,才能继承
二、继承的优点1.提高代码之间的重用性,(继承之后子类共用父类的代码) 2.提高了代码后期的可维护性(后期代码中需要添加或删除某些代码,只需修改父类代码即可)
三、继承的步骤:1.将多个类中共有的属性和方法提取出来,建立一个父类2.在子类后面使用extends关键字完成继承,   子类 extends  父类3.在子类中可以调用父类的代码注意:在java中属于单继承,在extends关键字后面只能有一个父类


子类访问父类成员:
访问父类构造方法:super();super(参数);
访问父类属性:super.属性名;
访问父类方法:super.方法名();
注意:this和super都必须出现在第一行,他们之间是互斥的


子类不能继承父类的那些资源:1.private成员2.子类与父类不在同包,使用默认访问权限的成员3.构造方法

访问修饰符:1.private             私有的2.默认的(friendly)  默认3.protected           受保护的4.public              公共的


多重继承关系的初始化顺序是怎样的:1.父类属性2.父类构造方法3.子类属性4.子类构造方法

对象初始化过程:第一步:在创建类之前,检查类是否已加载(检查硬盘上的.class的文件是否加载到内存中)如果没有加载就先加载父类的文件,再加载本类的文件java使用的策略称为:懒惰式加载(按需加载)用到的时候加载,只加载一次。第二部:分配对象空间,递归分配所有父类的属性空间,属性会自动的初始化为"0"值;第三步:属性赋值第四步:调用父类的构造方法(默认调用父类的无参构造方法)第五步:调用本类的构造方法

方法重写:*方法名相同*参数列表相同*返回类型相同或是其子类*子类访问权限大于或等于父类


super关键字访问父类的成员:super只能出现在子类的方法和构造方法中super调用构造方法时,只能是第一句super不能访问父类的private成员


abstract关键字:abstract是抽象的意思,可以修饰类和方法,修饰类我们称之为抽象类,修饰方法我们称之为抽象方法1.abstract 修饰类,抽象类   public abstract class 类名(){} 抽象类用来表示一些抽象的概念
抽象类特点: *抽象类不能被实例化 *抽象类可以有属性、方法、构造方法,都是用来给子类继承 *抽象类中不一定都是抽象方法。
2.abstract 修饰方法,抽象方法      访问修饰符 abstract 返回值类型 方法名(参数列表);   抽象方法不需要自己实现,由子类来实现     抽象方法特点:    *抽象方法没有方法体    *抽象方法必须出现在抽象类中    *一个类继承抽象类之后必须要实现父类所有的抽象方法
 3.抽象类可以继承抽象类


final关键字,表示最终的1.final可以用来修饰类、方法和属性。2.final修饰的类的不能再被继承。比如:String  String是final修饰的类,不能被继承
3.final修饰的方法,不能再被子类重写
4.final修饰的变量初始化以后不能再发生改变常量规范定义:public static final int ace=12;final修饰的引用数据类型,引用地址不能发生改变,但是只限定第一层,引用类型的属性值是可以改变的



多态:生活中:同一种事物,由于条件不同,产生的结果不同。
程序中:同一种引用类型,使用不同的实例而执行不同的操
实现多态的两个要素:1.子类重写父类方法2.使用父类的类型
子类到父类的转换(向上转型):Pet pet=new Dog();
实现多态的两种形式:*使用父类作为方法形参实现多态*使用父类作为方法返回值实现多态

父类到子类的转换(向下转型)强制类型转换前提是:已经向上转型称为:还原行为语法:子类名 子类自命名=(子类名) 父类名;Dog     dog     =  (Dog)  pet;
instanceof运算符:判断对象是否是属于类和接口,返回boolean类型对象  instanceof 类或接口











































































































































































































java——面对对象

软件出现的目的:*用计算机的语言来描述世界*用计算机解决现实世界的问题面向对象的思想描述面向对象的世界面向对象设计和开发程序的好处:*交流更加流畅*提高设计和开发效率构造方法:构造方法是用来描述对象创建的... 查看详情

java面对对象三大特征之继承多态(代码片段)

面对对象三大特征继承、多态继承1.继承的概念:2.继承的实现:3.继承的好处与弊端:4.super5.继承中的成员访问特点以及访问修饰符:JAVA中的访问修饰符6.方法重写以及继承的注意事项:多态1.多态的概念2.多态中成员访问特点3.多态的... 查看详情

java基础——面对对象-继承

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 继承: 继承就是拥有高效率的代码复用(在原有的代码基础上添加、升级称为... 查看详情

java面对对象入门-程序块初始化

Java实例初始化程序是在执行构造函数代码之前执行的代码块。每当我们创建一个新对象时,这些初始化程序就会运行。1.实例初始化语法用花括号创建实例初始化程序块。对象初始化语句写在括号内。publicclassDemoClass{//Thisisinitial... 查看详情

java阶段五之面对对象应用(代码片段)

面对对象应用常用APIString类关于String为啥不可改变StringBuilder类String、StringBuffer和StringBuilder的区别:ArrayList1.1ArrayList类概述1.2ArrayList类常用方法学生管理系统常用APIAPI理解什么是API  API(ApplicationProgrammingInterface):应用程序编... 查看详情

java面对对象一些关键字的解释

1. 成员变量                                      2. this关键字                                      3. 隐藏和封装                                      4. static关键字1... 查看详情

java--面对对象之object类

一、概念     Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。在Object类众多方法中,我们先学习equals方法与toString方法,... 查看详情

java面对对象的三大特性

我们先要知道类的访问修饰符:  public:公共的,在同一工程中任意地方都能访问。   protected:受保护的,在同一包中课可以访问,不同包中的自己的“子类”中也可以访问;能被继承。  Default:默认访问;同... 查看详情

java面对对象之封装

学习到了封装,也希望这篇文章能个给后面学习java的人一点帮助. 首先我们用实际问题先感受一下封装的概念.  用人来举例,人的年龄是有限的,0-120左右  我们在社交网站填写个人信息的时候,也会有年龄这一项,那么这个... 查看详情

java面对对象程序设计——面对对象(代码片段)

重点掌握1.类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称为实例2.创建对象的格式是:类名对象名称=new类名();3.方法的声明格式是:[<修饰符>]<返... 查看详情

基于java面对对象编程范式

科学思维&工程思维科学思维:限制条件可有可无,理论可行寻求未解决问题转变为解决问题的最优解;工程思维:限制条件多,现实可行性下寻求折中方案,不坏的解。 软件工程的发展历史:数学-计算机问题 计算机... 查看详情

面对对象-继承

继承代表了一种is-a关系,如果说A是B,也就可以说A继承了B父类更加通用子类更加具体优点:提高代码的复用性。java中实现继承使用extends关键字,语法:[修饰符]class类名extends父类{}子类可以继承父类的非私有的属性和方法。子类不... 查看详情

javascript面对对象编程之继承

     上一篇博客中为大家介绍了javascript面向对象编程原则的封装,今天为大家介绍继承。在javascript中没有类的概念,全部不能像c#。java语言那样。直接的用类去继承类。比方如今有比方。如今有一个"动物&... 查看详情

面对对象-继承-object类

java.lang.Object类:所有类的基类一个类如果没有显式使用extends继承其他类,这个类继承了Object类,在任何类的对象中使用Object中的方法publicclassStudent{}publicclassStudentextendsObject{} 常用的方法:getClass()返回此Object的运行时类。主要... 查看详情

张云飞201771010143《面对对象程序设计(java)》第十三周学习总结

1、实验目的与要求(1)掌握事件处理的基本原理,理解其用途;(2)掌握AWT事件模型的工作机制;(3)掌握事件处理的基本编程模型;(4)了解GUI界面组件观感设置方法;(5)掌握WindowAdapter类、AbstractAction类的用法;(6)掌握GUI程序中鼠标... 查看详情

201771010135杨蓉庆《面对对象程序设计(java)》第八周学习总结(代码片段)

1、实验目的与要求(1) 掌握接口定义方法;(2) 掌握实现接口类的定义要求;(3) 掌握实现了接口类的使用要求;(4) 掌握程序回调设计模式;(5) 掌握Comparator接口用法;(6) 掌握对象浅层拷贝与深层拷贝方法;(... 查看详情

201771010135杨蓉庆《面对对象程序设计(java)》第九周学习总结(代码片段)

第7章异常、日志、断言和调试1、实验目的与要求(1)掌握java异常处理技术;(2)了解断言的用法;(3)了解日志的用途;(4)掌握程序基础调试技巧;一、理论知识1、异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执... 查看详情

张云飞201771010143《面对对象程序设计(java)》第九周学习总结

实验九异常、断言与日志实验时间2018-10-251、实验目的与要求ava把程序运行时可能遇到的错误分为两类:非致命异常:通过某种修正后程序还能继续执行。这类错误叫作异常。如:文件不存在、无效的数组下标、空引用、网络断开... 查看详情