【JAVA总结】⾯向对象编程-类与对象(上)

1.面向对象编程简介

1.1面向对象三大特征

  • 封装性
    一块代码的封装—方法
    方法和属性的封装—类
    某些数据的封装—对象

  • 继承性
    优点:扩展性高,重用性强

  • 多态性
    1、方法的多态;方法的重载与重写
    2、对象的多态:向上转型与向下转型
    向上转型:父类型的对象引用子类型的对象
    向下转型:子类型的对象引用父类型的对象,(强制转换)

1.2面向对象名词扩展

  • OOA:⾯向对象分析
  • OOP:⾯向对象编程
  • OOD:⾯向对象设计

2.类与对象的定义和使用

2.1基本概念
类和对象的比较:

对象
共性的概念 具体的,可以使用的事物

先产生类,再产生对象,类是对象的蓝图

对象的初始化顺序:静态代码块、实例代码块、构造函数

类中的组成:

  • 属性(变量,描述每个对象的具体特点)
  • 方法(操作的⾏为)

2.2定义和使用

定义一个类(蓝图)的语法:

class 类名称 {
 	属性1;
 	属性2;
 	属性n...;
 
 	⽅法1(){}
 	⽅法2(){}
 	⽅法n(){}...
}

(生产)对象的语法:

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

2.3对象内存分析

JAVA内存区域 (简单的分为):栈内存和堆内存

  • 栈内存(虚拟机局部变量表):存放的是局部变量(包含编译期可知的各种基本数据类型、对象引用-即堆内存的地址,可以简单的理解为对象的名称),Java栈是与线程对应起来的,每当创建⼀个线程,JVM就会为这个线程创建⼀个对应的Java栈。
  • 堆内存:保存的是真正的数据,即对象的属性信息。

2.4引用传递分析
引⽤传递的本质:⼀块堆内存可以被多个栈内存所指向

3.封装和构造方法
3.1 private实现封装
要访问私有属性,按照Java的设计原则必须提供以下两种⽅法:

setter⽅法:主要⽤于进⾏属性内容的设置与修改
getter⽅法:主要⽤于属性内容的取得

private实现封装的最⼤特征在于:只允许本类访问,⽽不允许外部类访
问。

3.2 类的设计原则

  • 编写类时,类中的所有属性必须使⽤private封装。
  • 属性若要被外部访问,必须定义setter、getter方法。

3.3 构造方法

构造⽅法就是使⽤关键字new实例化新对象时来进行调用的操作方法。

对于构造⽅法的定义,也需要遵循以下原则:

1.⽅法名称必须与类名称相同
2.构造⽅法没有返回值类型声明
3.每⼀个类中⼀定⾄少存在⼀个构造⽅法(没有明确定义,则系统⾃动⽣成⼀个⽆参构造)

3.3 构造方法重载

public Person(){
 	System.out.println("===⽆参构造===");
}
public Person(String n){
 	name = n ;
 	System.out.println("===有参构造===");
}

在进⾏类定义时:①定义属性->②定义构造⽅法->③定义普通⽅法

4.this关键字

this关键字主要有以下三个⽅⾯

  1. this调⽤本类属性
  2. this调⽤本类⽅法
  3. this表示当前对象

指代一个隐式的引用变量
this.属性------就是当前对象 指向未来要创建的对象。主方法new后的对象
this(有参传参);只能放类里第一行

5.static关键字(重要)

5.1 static类属性

描述共享属性,只需在属性前添加static关键字即可
static属性⼜称为类属性,保存在全局数据区的内存之中,所有对象都可以进⾏该数据区的访问.

结论:

访问static属性(类属性)应使⽤类名称.属性名

所有的⾮static属性(实例变量)必须在对象实例化后使⽤,⽽static属性(类属性)不受对象实例化控制

5.2 static类方法

使⽤static定义的方法,直接通过类名称访问。

使⽤static定义方法的目的:

某些方法不希望受到对象的控制,即可以在没有实例化对象的时候执行(广泛存在于工具类中)。

所有static 在类加载时就能被执行

猜你喜欢

转载自blog.csdn.net/LXL7868/article/details/89074305
今日推荐