华清远见重庆中心—面向对象技术总结/个人总结

本文介绍了Java中的标识符命名规范,包括帕斯卡命名法和驼峰命名法,并详细讲解了方法的定义、调用和参数。此外,还讨论了类和对象的概念,构造方法的使用,以及面向对象的特性如封装、继承和方法的重写与重载。重点强调了对象创建、成员变量与局部变量的区别,以及this和super关键字的应用。
摘要由CSDN通过智能技术生成

java中标识符的命名规则

类名、方法名、变量名统称为标识符

标识符命名规范:

  • 帕斯卡命名法:所有字母首字母大写

  • 驼峰命名法:第一个单词首字母小写,其余单词首字母大写

类名使用帕斯卡方法命名,方法名变量名使用驼峰法命名

方法

方法是定义在类中的一段独立代码,能完成某个事情

定义方法时提供方法的名称,返回值,参数列表(方法三要素)

调用方法

通过类名调用

Math类

Math类时java中的工具类,用于数学计算,该类使用static修饰,可以直接通过类名调用

常用方法和属性:PI圆周率,E自然常数,abs绝对值,ceil向上取整,floor向下取整,round四舍五入random取随机数,sqrt平方根,cbrt立方根,math.pow(2,3)二的三次方。

通过对象调用

创建对象:类名 对象名 =new 类名([参数]);

Scanner sc=new Scanner(System.in);
sc.方法名();

在同一个类中,方法A直接调用方法B

class Test{
    void funA(){
        funB();
   }
    void funB(){
        System.out.println("我是B方法");
   }
}

方法调用总结:调用方法(通过类名调用,通过对象调用,直接调用)

参数
返回值:没有返回值,方法名的前面用void表示,有返回值,使用java中的任意数据类型,方法体中使用return关键字返回对应类型的数据

方法的类型:

无参无返:void 方法名(){return;}//yudaoreturn立即结束方法

无参有返:int 方法名(){return new Random().nextInt();}

有参无返:void 方法名(数据类型 形象名,数据类型 形参名){//方法体return;}

有参有返:

//生成a,b中包含最小值,不包含最大值范围内的随机数
double rand(int a,int b){
    double num=Math.floor(Math.random()*Math.abs(a-b)+Math.min(a,b));
    return num;
}

有返回值时必须有return并能够执行,同时要return一个该方法返回值类型对应的数据

没有返回值可以不加return关键字。方法中加入return,会立即结束方法,∴return后面不能再有代码

定义方法时参数称为形参,调用方法时,实际传递的参数称为实参。实参要保证数据类型跟形参相同

面向过程编程:POP(procedure oriented programming)侧重于完成的过程

面向对象编程:OOP(object oriented programming)侧重于完成的对象

类和对象

类class:

具有相同属性和行为的集合。相当于模板。

属性:描述这个类的特征值,在程序中,通过定义变量实现

行为:描述这个类的动作,在程序中通过定义方法实现。(创建一个class就是创建一个类)

定义类

[修饰符]class 类名{

//属性(定义变量)

//行为(定义方法)}

对象 object

对象由某个类创建出来的具体实例

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

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

类和对象的关系:对象是类的具体表现,类是对象的模板,先定义类,才能通过该类获取对象

成员变量和局部变量

成员变量:

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

数据类型:整型,浮点型,布尔型,引用类型。

局部变量:

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

成员变量与局部变量的区别以及生命周期:成员变量定义在类中,有默认值,不赋值也能使用

局部变量是定义在方法中的变量,没有默认值,需要赋值。成员变量的生命周期:类创建对象,成员变量就会初始化,类的对象被回收,成员变量销毁。 局部变量的生命周期:方法调用,对局部变量赋值,局部变量初始化,方法调用结束,局部变量失效。

构造方法:

构造方法也称构造函数,构造器,constructor。它是一种特殊的方法。没有返回值部分,方法名和类名一致,在创建爱你对象时通过new调用,给类的成员变量赋值。

class Person{
    //成员变量
    String name;
    int age;
    //这就是一个无参数的构造方法,用于new Person()
    Person(){      
   }
    //这就是一个带参数的构造方法,用于new Person("admin",20)
    Person(String name,int age){
        this.name=name;//将参数的值赋值给成员变量
        this.age=age;
   }
}
特点:
  • 创建对象时必须通过new配合构造方法

  • 构造方法没有返回值部分,名称和类名相同

  • 构造方法可以存在多个

  • 但是参数不能相同,这些构造方法之间的关系称为重载

  • 每个类默认有一个隐藏的无参数的构造方法,方法中隐含了一句super()用于创建无参数的对象

  • 如果自己写了带参数的构造方法,默认无参数的构造方法会失效

  • 带参数的构造方法常用于初始化成员变量(给类中的变量赋值)

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

  • 构造方法无法通过"."操作符访问,只能通过new关键字创建对象时调用

IDEA中自动生成构造方法:

空白处右键generate或者 alt+insert:选择Constructor(生成构造方法)全选:ctrl+a

面向对象语言的三大特性:

封装:使用private关键字对成员进行修饰,在提供一组get和set的方法,用于对该属性读取和赋值。可以防止除自身类之外的地方对private修饰的属性进行访问。

自动生成:空白处右键generate或者 alt+insert:选择getter and setter

IDEA中自动使用变量接收对象:在对象后.var或快捷键ctrl+alt+v

继承:类B使用extends(延伸)关键字"继承"类A

语法:class类B extends类A{}

类B称为类A的子类,衍生类,subClass

类A称为类B的父类,超类,supClass

继承后,子类就能访问父类中的非私有(没有用private修饰的)成员变量和成员方法。

特点
  • 如果多个类中有相同的代码,可以将这些代码提取出来放到公共的类中---父类再让那些类去extends继承这个父类,那些类就是子类。子类就无需再写重复代码

  • 子类中或子类对象可以直接访问父类中非私有(不用private修饰)属性和方法。

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

  • 子类继承父类后,通常会对父类中的方法进行拓展或覆盖(称为重写),重写后,子类再调用该方法时,执行的是重写后的内容

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

  • java中可以多重继承,类a可以继承b,类b可以继承c,类a可以访问类b类c。

  • 任何类都是object类的子类

方法重写和方法重载

方法重写override

当子类继承父类后,可以对父类中的方法扩展或覆盖。

要求:
  • 方法名,返回值,参数列表必须和父类一致

  • 访问权限不能比父类更严格

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

方法重载overload

在一个类中,如果多个方法的方法名相同,参数列表不同,这些方法称为载重的方法。

同名不同参,载重用于在一个类中,某个方法在不同条件下,执行不同的内容

方法栽种的要求
  • 方法名相同

  • 参数必须不同(数量 类型)

  • 与返回值无关

重载和重写相关面试题:

载重与重写的异同:相同:方法名不变

不同:重载在一个类中,重写在继承关系中子类重写父类

重载参数必须不同,重写参数必须相同

重载返回值无要求,重写返回值必须相同

构造方法能重载吗?能重写吗?

构造方法可以重载。构造方法不能重写。

构造方法在执行时,一定会创建对象吗?

不一定。创建子类时会自动执行父类构造方法,但不会创建父类对象。

this和super关键词:

都可以当做对象使用,也可以当做构造方法使用

当做对象使用:

用法:this.属性或this.方法,super.属性或super.方法此时的this表示当前类的对象,super表示当前类的父类对象。

当构造方法使用:

此时的this([参数])表示当前类的某个构造方法。如this()表示当前类的无参构造方法。

super([参数])表示当前类的父类的某个方法。如super()表示当前类的父类的无参构造方法。

如果当做构造方法使用时,只能写在另一个构造方法的第一行。

注意:

如果父类中有无参数的构造方法,在子类的构造方法中,可以不写super(),默认自动调用。

如果父类中有带参数的构造方法,没有无参数的构造方法,在子类的构造方法中,必须要有super([参数])。

父类和子类中都没有构造方法(只有默认的无参构造方法)

父类中没有无参构造方法,子类中就必须调用父类中对应的构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值