Java——面向对象(上)

发布于:2022-12-30 ⋅ 阅读:(494) ⋅ 点赞:(0)

Java——面向对象(上)

一、面向对象和面向过程

面向对象和面向过程都是一种编程思想 基于不同的思想会产生不同的程序设计方法。
面向过程: 以过程,步骤为主,考虑怎么做,程序员是具体执行者
面向对象: 以对象(谁)为主,考虑谁来做,谁能做,程序员是指挥者

二、类和对象

1. 类和对象的理解

  • 什么是类?

    类: 是一类具有相同特征的事物的抽象描述,是一组相同 属性行为 的对象的集合。

  • 什么是对象?
    对象: 是一个具有特定 属性行为 的具体事物。

  • 类和对象的关系

    • 类是对一类事物的描述,是 抽象的
    • 对象是一类事物的实例,是 具体的
    • 类是对象的模板,对象是类的实体
  • 电脑举例:
    类: 主板、CPU、内存、电源、显卡、显示器 等硬件组成了电脑,电脑是多种硬件组成的描述, 是抽象的。就可以认为电脑是类, 是对相同特征的事物抽象描述的
    对象: 苹果电脑,联想电脑,华硕电脑 就是这个电脑的具体实现,是看得见摸得着的,而不是概念。就可以说他们是类的实例

2. 类的定义

Java中用 class 关键字定义一个类,类包含 属性方法

// 定义一个人类
public class Student{
    // 属性
    String name;   // 姓名
    int age;       // 年龄
    char sex;      // 性别

    // 方法
    public void study(){
        System.out.println("学生在学习");
    }
    public void eat(){
        System.out.println("学生在吃饭");
    }
}

3. 对象的使用

类是对象的 模板 ,所以通过类创建这个类的对象,或者说创建这个类的一个实例,这个过程称为类的实例化

  • 创建对象语法格式:

    类名 对象名= new 类名 ();

    //创建学生对象
    Student student = new Student();
    
  • 使用对象的属性和方法,使用 . 操作

    使用对象的属性:对象名.属性
    使用对象的方法:对象名.方法名()

    student.name = "ZF";
    student.age = 18;
    System.out.println(student.name);
    System.out.println(student.age);
    student.study();
    student.eat();
    

三、包(Package)

  • 包的作用

    1. 可以避免类重名:有了包之后,类的全名称就变为:包.类名

    2. 分类组织管理众多的类

    3. 可以控制配合 访问修饰符 控制成员的可见范围

  • 语法格式

    1. 必须在源文件的代码首行, 包名全部小写
    2. 一般使用公司域名倒写: com.公司域名.项目名.模块名
    package com.公司域名.项目名.模块名;
    
  • 如何跨包使用类

    前提:被使用的类或成员的权限修饰符是 > 缺省的,即可见的

    (1)使用类的全名称

    java.util.Scanner input = new java.util.Scanner(System.in);
    

    (2)使用import 语句,代码中使用简名称即可

    import.类名;
    import.*;  // 导入包下的所有类
    
  • 注意

    使用 java.lang 包下的类,不需要 import 语句,就直接可以使用简名称

四、局部变量和成员变量

成员变量就是类中的属性, 用来描述一个对象的特征

  • 局部变量: 定义在方法体内或其他局部区域内的变量,没有初始值和访问修饰符。
  • 成员变量: 定义在类内,方法体外,与方法平行的位置。有默认初始值和访问修饰符。
成员变量 局部变量
声明的位置 直接声明在类的成员位置 声明在方法体中或其他局部区域内(方法声明上,构造方法,代码块等)
修饰符 public、private、final等 不能使用访问权限修饰符,可以使用final
内存加载位置
初始化值 有默认初始化值 无默认初始化值
生命周期 同对象的生命周期 随着方法的调用而存在,方法调用完毕即消失

五、方法(Method)

  • 方法的概念
    方法也叫函数,把相同的功能封装成方法,可以实现代码重用,从而简少代码量。

  • 成员方法

    成员方法也叫实例方法: 通过创建对象, 使用 对象.方法名 的方式调用

    Scanner input = new Scanner(System.in); // 创建对象
    input.next(); // 使用对象的方法
    

六、方法重载(Overload)

方法重载: 同一个类中(本类声明的或继承自父类的)的方法,方法名相同,参数列表不同的情况,这就叫方法重载。
参数列表不同: 指的是参数个数不同,数据类型不同,数据类型顺序不同。

七、可变形参

在JDK1.5之后, 如果我们定义一个方法时,此时某个形参的类型可以确定,但是形参的个数不确定,那么我们可以使用可变参数。

格式:

	// 可变参数写法
	public  int getSum(int... arr) {
		int sum = 0;
		for (int i = 0; i < arr.length; i++) {
			sum += arr[i];
		}
		return sum;
	}

注意:

(1)一个方法最多只能有一个可变参数

(2)如果一个方法包含可变参数,那么可变参数必须是形参列表的最后一个


网站公告

今日签到

点亮在社区的每一天
去签到