华清远见-重庆中心-JAVA面向对象阶段技术总结

方法

一段独立的代码,能完成一件事情,可以被重复调用。 方法可以减少重复的代码。

通常情况下,方法通过对象或类名使用"."操作符进行调用,也可能不用"."直接调用。

定义方法

修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数名...){ 方法体 }

返回值类型、方法名和参数列表(小括号中的内容)是组成方法的三要素

返回值类型可以是任意数据类型(原始类型/引用类型)

小括号中的内容称为参数列表只需写参数类型和参数名,多个参数用逗号隔开。可以没有参数,但 必须要有小括号

访问修饰符可以不写,会有默认的修饰符

不同的返回值类型,要在方法体中返回(return)对应类型的结果,如果没有返回值,用void

面向对象编程

Object Oriented Programming 简称OOP

是创建解决问题的对象,赋予对象对应的行为特征,让这些对象互相配合(调用 对象的方法)完成。

类与对象

定义类:[修饰符] class 类名{ //属性(变量) //行为(方法) }

具有相同属性和行为的对象的集合,称为"一类"。可以理解为模板

属性:描述对象的特征,在程序中,通过定义变量的形式表现属性。

行为:描述对象的动作,在程序中,通过定义方法的形式表现行为。

对象:类名 对象名 = new 构造方法([参数]);

创建的对象,通过"."操作符访问类中的非私有属性和方法。

类与对象的关系:对象是类的具体表现,类是对象的集合(模板)。

局部变量:定义在方法中的变量,称为局部变量。默认有默认值,赋值后才能使用

成员变量:定义在类中的变量,称为成员变量,拥有默认值

构造方法

构造方法是一个特殊的方法,没有返回值,方法名和类名一致

每个类在定义时,都有一个默认隐藏的无参数的构造方法,在创建对象时调用。

构造方法通常用于初始化成员变量。

public class Test{

//这就是无参数的构造方法,默认就会存在,不过是隐藏的

    public Test(){

    }

}

每个类默认有一个隐藏无参数的构造方法,方法体中没有内容,用于创建无参数的对象

构造方法没有返回值(没有返回值这一部分,不是void),构造方法名必须和类名相同

构造方法可以限制创建对象时的参数

构造方法不能通过“.”操作符访问,只能通过new关键字创建对象时自动调用,所以构造方法通常用 于初始化成员变量

面向对象的三大特性

封装

使用private关键字对属性进行修饰。再对外提供一组公开的get/set方法用于对该属性读取或赋值。

可以防止除自身类之外的地方对该属性就行访问。

public class Student{

 //创建类,编写成员变量,给成员变量添加private修饰符

    private int stuId;

    private String stuName;

    private String major;

}

这是创建对象后,无法通过"."访问属性,只能通过get/set方法

使用IDEA自动生成getter/setter方法 在代码空白处右键选择generate或快捷键alt+insert

继承

类A可以通过extends关键字继承类B。

语法:class 类A extends 类B{

类A称为子类、派生类、衍生类、subClass 

类B称为父类、根类、超类、superClas

继承后,子类可以访问父类中非私有(没有被private修饰的内容)的属性和方法。

子类可以对父类中的方法进行扩展或覆盖,这称为方法重写。重写后,子类对象再调用该方法时, 执行的是重写后的内容

Java中是单继承。一个子类只能extends一个父类,一个父类可以有很多个子类

Java中可以多重继承。类A可以继承类B,类B可以继承类C,这时类A既是类B的子类,也可以称为 类C的子类,可以访问类B与类C中非私有的成员

在创建子类对象时,会先执行父类中相应的构造方法

方法重写

当子类继承父类后,可以对父类中非私有的方法进行扩展或覆盖,这个过程称为方法重写。

· 方法名、参数列表、返回值必须和父类一致

· 访问权限不能比父类更严格(访问修饰符的范围要么一致要么更大)

· 不能抛出比父类更大的异常

this和super关键字

当做对象使用

用法:“this.属性”或“this.方法”或“super.属性”或“super.方法”

此时的this表示“当前类”,super表示"父类对象"。

public class Person{

      private String name;

      public void setName(String name){

           this.name=name;//这里的this表示当前类Person的对象

           //this表示Person p = new Person();中的p

     }

}

public class Man extends Person{

      public void fun(){

               System.out.println(super.getName());//这里的super表示当前类父类Person对象                      //super表示Person p = new Person();中的p

      }

}

多态

多态就是子类的对象指向父类的引用(子类对象使用父类变量接收,即向上转型)。

父类 变量 = new 子类();

public class Father{

}

public class Son extends Father{

 }

public class Main{

         public static void main(String[] args){

               Son son = new Son();

             //这就是多态的体现

             //子类的对象,可以使用父类的变量保存

               Father father = new Son();

}

}

final:表示常量

用于修饰属性、方法和类

修饰属性:变量变为常量,不能改变其中的值。

修饰方法:方法成为最终方法,不能重写。

修饰类:类成为最终类,不能被继承。

adstract:抽象的

修饰方法:访问修饰符 abstract 返回值类型 方法名(参数类型 形参名称);

修饰方法,方法成为抽象方法,没有方法体,同时该方法的所在类也一定要用abstract修饰,让其成为 抽象类。

 抽象方法只能出现在抽象类中,不能出现在普通类中。

修饰类:访问修饰符 abstract class 类名{}

· 抽象类中可以没有抽象方法。

· 抽象类中有构造方法,但该构造方法只会在new抽象类的子类对象时会自动调用,抽象类不能创     建 自身对象。

· 抽象类通常需要被继承,一旦有子类继承了抽象类,就必须要重写抽象类中的所有抽象方法。

static静态的

static是一个修饰符,可以修饰属性、方法、代码块。

被static修饰的内容,称为静态成员。静态成员在类加载的时候,就会保存到内存中,可以脱离对象存 在。

如果某个属性或方法被高度重用时,可以将其定义为static静态的。

这样这些属性就会脱离对象,在类加载时就加载到内存中,从而直接通过类名即可访问。 或不想创建对象就想使用该类中的属性或方法时,将它们定义为静态的。

interface 用于定义接口的关键字。

如果想要让某个类作为多个"类"的子类时,将这些"父类"定义为接口

如果某个抽象类中全都是抽象方法时,可以将这个类改为接口。

· 接口是一个完全抽象类,其中的方法都是public abstract修饰的抽象方法,没有方法体,其中的       属性都是public final static修饰的静态常量。

· 接口中没有构造方法,不能创建对象。

· 接口通过implements实现,实现它的类称为该接口的实现类。

· 一个类可以同时实现多个接口

· 一个类实现了接口后,必须重写其中的抽象方法。

extends和implements

类A extends 类B:类A当做类B的子类,继承。

类A implements 接口A,接口B...:类A当做接口A、接口B的实现类("子类") 

接口A extends 接口B:接口A通过extends继承接口B

类A extends 类B implements 接口A,接口B...:类A是类B的子类,是接口A、接口B的实现类,同时能访问这三个"父类"中的数据。

总结

       经过这一周的学习初步了解了面向对象编程,重点学习了面向对象的三大特性(封装,继承,多态),接口等等,相对于之前学习的基础,本周学习的内容更考验逻辑思维能力。虽然学习了很多的理论知识,但在应用方面仍比较生疏就像在编写时会出现调用对象是会出现调用过去的对象的类型和接受对象的类型不一致等等的情况,这都是理论掌握不够熟悉,实际动手能力较差的表现,还需要活学活用,多敲多看不然只能望而生叹。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 根据所提供的华清远见-c0rtexas9资料路径,在实验中涉及到了Linux系统标准IO的应用实验。Linux系统标准IO是指Linux操作系统提供的一套标准化的IO库,可以用于操作文件、输入输出等。以下是对该实验的简单描述: 这个实验主要是关于Linux系统标准IO的应用实验。在该实验中,我们可以找到程序的源代码,该源代码是用Linux应用程序的方式编写的。通过这个实验,我们可以了解和学习Linux系统标准IO的基本操作和使用方法。 Linux系统标准IO是一套非常强大和灵活的IO库,提供了一系列的函数和方法来操作文件和进行输入输出。在实验源码中,我们可以看到一些常见的标准IO函数,比如fopen、fclose、fprintf和fscanf等。 通过这些函数,我们可以打开和关闭文件,从文件读取数据或向文件写入数据。实验源码中包含了一些常见的操作,比如读取文件、写入文件、复制文件和查找文件等。通过实验,我们可以了解到如何使用这些函数来完成不同的操作。 此外,在实验源码中可能还会涉及到一些其他的Linux系统标准IO相关的知识点,比如文件指针、文件描述符和文件流等。这些知识点对于理解和使用Linux系统标准IO函数非常重要。 通过实验中提供的源代码,我们可以进行相应的实验操作,从而更好地理解和学习Linux系统标准IO的使用。同时,我们也可以通过对实验源码的分析和调试,更深入地了解Linux系统标准IO的内部工作原理。 总之,通过这个实验,我们可以掌握Linux系统标准IO的基本操作和使用方法,从而提高我们在Linux系统中进行文件操作和输入输出的能力。 ### 回答2: 华清远见(英文名称为Far Infrared Technologies International Limited)是一家专注于红外光学技术研发及应用的企业。该公司的产品主要应用于安防监控、无人机、机器人、智能家居等领域。 关于"06. linux系统标准io实验"的实验资料包括了程序源码。在Linux操作系统中,标准I/O(Input/Output)库是用于进行文件读写和输入输出操作的一套API(Application Programming Interface)。标准I/O库提供了一系列函数,包括文件打开、读取、写入、关闭等操作,方便开发人员进行文件操作和输入输出。 这份实验资料中的源码,应该是用于展示和实践Linux系统标准I/O库的使用方法和技巧。通过编译和运行这些源码,可以了解如何使用标准I/O库来进行文件的读写和输入输出操作,包括打开文件、读取文件内容、写入文件等。 这些实验源码可以作为学习和实践Linux系统标准I/O库的参考资料。通过实际操作,可以加深对标准I/O库的理解和掌握,提高在Linux环境下进行文件操作和输入输出的能力。 总之,"06. linux系统标准io实验"的实验资料中的程序源码是用于学习和实践Linux系统标准I/O库的使用方法,通过编译和运行这些源码,可以加深对标准I/O库的理解和掌握,提高在Linux环境下进行文件操作和输入输出的能力。 ### 回答3: 华清远见-c0rtexa9资料中的程序源码目录为\linux应用实验源码\06. linux系统标准io实验\。这个实验中包含了一些关于Linux系统标准输入输出的代码示例。 在Linux中,标准输入输出是三个预先定义好的文件描述符,分别是0(stdin),1(stdout),2(stderr)。这些文件描述符与输入输出设备关联,比如键盘和屏幕。使用标准输入输出可以实现用户与程序之间的交互以及程序的输出显示。 在实验源码中,我们可以看到许多用于标准输入输出的函数,包括printf、scanf、getchar、putchar等。这些函数可以帮助我们进行输入输出操作。 在实验中,我们可以通过这些代码示例学习如何从标准输入读取用户输入,如何向标准输出显示结果。例如,可以使用scanf函数读取用户输入的数据,使用printf函数将处理结果输出显示。 通过实验中的代码示例,我们可以学习到如何处理标准输入输出的错误,如何进行格式化输入输出,如何使用缓冲区进行高效的输入输出等。 总之,华清远见-c0rtexa9资料中的\linux应用实验源码\06. linux系统标准io实验\中包含了一些关于Linux系统标准输入输出的代码示例,通过这些示例我们可以学习到如何进行标准输入输出操作,以及一些与之相关的技巧和注意事项。这对于学习Linux系统编程和开发应用程序非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值