Java基础(三)(复习蓝桥杯向)

    科技2024-10-25  14

    文章目录

    一、面向对象1. 面向对象的定义2. 类的定义3. 匿名对象4. 变量与函数5. 函数的参数传递机制6. 形参个数可变的方法7. 函数的重载(一)、重载的概念(二)、重载的特点(三)、重载的好处 8. 构造函数9. 构造代码块10. this关键字11. 面向对象的内存分析

    一、面向对象

    1. 面向对象的定义

    面向对象是相对面向过程而言面向对象和面向过程都是一种思想面向过程:强调的是功能行为面向对象:将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。 特点: 符合人类的思考习惯复杂的事情简单化程序员从执行者转换成了指挥者完成需求时: 先要去找具有所需的功能的对象来用。如果该对象不存在,那么创建一个具有所需功能的 对象。这样简化开发并提高复用。

    2. 类的定义

    Integer i = new Integer();

    3. 匿名对象

    class Person { void cook() { System.out.println(111); } } public class Main { public static void main(String[] args) { new Person().cook();// 匿名对象 } } 匿名对象是对象的简化形式匿名对象两种使用情况 当对对象的某方法仅进行一次调用时匿名对象可以作为实际参数进行传递

    4. 变量与函数

    变量(Field):也叫字段。函数(Method):也叫方法。

    成员变量和局部变量的区别

    成员变量: 成员变量定义在类中,在整个类中都可以访问。成员变量随着对象的建立而建立,存在于对象所在的堆内存中。成员变量有默认初始化值,同数组。局部变量: 局部变量只定义在局部范围内,如:函数内,代码块内等。局部变量存在于栈内存中。作用的范围结束,变量空间会自动释放。局部变量没有默认初始化值。

    5. 函数的参数传递机制

    Java里函数的参数传递只有一种:值传递。所谓值传递,就是将实参的副本传入函数内,实参本身不会受到任何影响。

    6. 形参个数可变的方法

    定义函数时,在最后一个形参的类型后面增加三个点,表明该形参可接受多个参数值多个参数值被当成数组传入。 public static double ScoreProcess(int... a) { double sum = 0; for (int i : a) sum += i; return (sum / a.length); } public static void main(String[] args) { double avg1 = ScoreProcess(87, 81, 56, 92, 73, 69, 77, 35, 94, 66, 80); double avg2 = ScoreProcess(new int[] { 87, 81, 56, 92, 73, 69, 77, 35, 94, 66, 80 }); }

    那么,以下两种形参声明,区别在哪儿 public static double ScoreProcess(int... a) public static double ScoreProcess(int[] a)

    第一种,实参可以是数组,也可以是个数 可变的参数。第二种,实参必须是数组。

    注意:

    长度可变的形参只能位于形参列表的最后。一个方法最多只能有一个长度可变形参。

    7. 函数的重载

    (一)、重载的概念

      在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。

    /** * 返回两个整数的和 */ int add(int x, int y) { return x + y; } /** * 返回三个整数的和 */ int add(int x, int y, int z) { return x + y + z; } /** * 返回两个小数的和 */ double add(double x, double y) { return x + y; }

    (二)、重载的特点

      与返回值类型无关,只看参数列表。

    (三)、重载的好处

      方便于阅读,优化了程序设计。

    8. 构造函数

      构造函数也叫构造器、构造方法。构造函数是一个创建对象时被自动调用的特殊方法,用于对象的初始化。Java通过new关键字来调用构造函数,从而返回该类的实例,它是一种特殊的方法。 注:

    Java通过new关键字调用构造函数。构造函数虽然有返回值,但是不能定义返回值类型(返回值类型是本类),不能在构造函数里使用return返回某个值。如果没有定义构造函数,则编译器会自动定义一个无参的构造函数;如果已经定义,则编译器不会自动定义。构造函数必须与本类同名。构造函数可以重载。 public class Main { private int a; private int b; public Main() { } public Main(int a) { this.a = a; } }

    9. 构造代码块

      优先于构造函数运行,为所有对象进行初始化,而构造函数仅针对特定的对象初始化。

    public class Main { private int a; private int b; public Main() { } public Main(int a) { this.a = a; } { a = 0; b = 0; } }

    10. this关键字

      this表示本类对象的引用。 this的常见用法:

    在程序二义性之处,应使用this来指明当前对象。普通方法中,this总是指向调用该方法的对象;构造器中,this总是指向正要初始化的对象。使用this关键字调用重载的构造函数,避免相同的初始化代码。但只能在构造函数中用,并且必须位于构造函数的第一句。this不能用于static方法中。

    11. 面向对象的内存分析

      Java虚拟机的内存可以分为三个区域:栈(stack)、堆(heap)、方法区(method area)。

    Processed: 0.043, SQL: 8