Java--面向对象一(类的结构)

1、类与对象概念

 1.1 面向对象与面向过程

 (1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
 (2)面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

 1.2 类与对象的概念

 (1)类:对一类事物的描述,是抽象的、概念上的定义
 (2)对象:是实际存在的该类事物的每个个体,因而也称为实例
 (3)类与对象的关系:对象是类的实体,类是对象的抽象

2、类的结构

 2.1 属性

  • 类属性是可以直接通过“类名.属性名”来访问和修改。
  • 类属性是这个类的所有实例对象所共有的属性。
  • 直接定义在类的一对{}内
  • 可以在声明属性时,指明其权限,使用权限修饰符(private、public、缺省、protected等)
  • 类的属性,根据其类型,都默认初始化值
  • 加载到堆空间中(非static)

局部变量

  • 声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
  • 不可以使用权限修饰符
  • 没默认初始化值
  • 加载到栈空间

 2.2 方法

 2.2.1 方法的声明

权限修饰符  返回值类型  方法名(形参列表){
  			方法体
  }

 2.2.2 可变个数形参方法

/*
 *可变个数形参的格式:数据类型 ... 变量名
 *当调用可变个数形参的方法时,传入的参数个数可以是:0-n个
 **/
public void test(String ... strs){	
		for(int i = 0;i < strs.length;i++){
			System.out.println(strs[i]);
		}
	}

 2.2.3 java的值传递方式

 (1)形参与实参

​   形参:方法定义时,声明的小括号内的参数

​   实参:方法调用时,实际传递给形参的数据

 (2)基本数据类型与引用数据类型

​   基本数据类型的变量:赋值的是变量所保存的数据值。
​   引用数据类型的变量:赋值的是变量所保存的数据的地址值。

 (3)值传递机制

​   如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
​   如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。

 2.2.4 递归方法

  定义:一个方法体内调用它自身。

 2.3 构造器(构造方法)

public 类名(形参列表){
		方法体
	}

 2.3.1 作用

​  (1)创建对象

​  (2)初始化对象的信息

 2.3.2 使用规则

  • 如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器
  • 定义构造器的格式:权限修饰符 类名(形参列表){}
  • 一个类中定义的多个构造器,彼此构成重载
  • 一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器
  • 一个类中,至少会有一个构造器

 2.3.3 属性赋值顺序

​  (1)默认初始化

​  (2)显式初始化

​  (3)构造器中初始化

​  (4)通过"对象.方法" 或 "对象.属性"的方式,赋值

 2.3.4 JavaBean的概念

​  符合以下标准的Java类

  • 是一个公共(public)的类
  • 有一个无参的公共的构造器
  • 通过setXXX方法设置属性,通过getXXX方法获取属性

 2.4 代码块

  • 代码块的作用:用来初始化类、对象的信息
  • 分类:代码块要是使用修饰符,只能使用static
  • 静态代码块作用:初始化类的信息。随着类的加载而执行,而且只执行一次
  • 非静态代码块作用:可以在创建对象时,对对象的属性等进行初始化。创建一个对象,就执行一次非静态代码块
  • 加载顺序:父类优先于子类,静态优先于非静态

 2.5 内部类

​   定义:Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类。

 2.5.1 分类

  • 成员内部类(静态、非静态 )
  • 局部内部类(方法内、代码块内、构造器内)
发布了121 篇原创文章 · 获赞 45 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_41596568/article/details/103243118