面向对象基础

简介: 面向对象基础

学习面向对象内容的三条主线

Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类

面向对象的特征:封装、继承、多态、(抽象)

其他关键字的使用:this、super、package、import、static、final、interface、abstract等

面向过程

面向过程是以函数为基准,适合解决简单问题。

面向对象

面向对象是以类为基准。



面向对象 (Object Oriented Programming,OOP) ,是软件开发中的一类编程风格、开发范式。除了 面向对象 ,还有 面向过程 、 指令式编程 和 函数式编程 。在所有的编程范式中,我们接触最多的还是面向过程和面向对象两种。


类:具有相同特征的事物的抽象描述,是 抽象的 、概念上的定义。


对象:实际存在的该类事物的 每个个体 ,是 具体的 ,因而也称为 实例(instance) 。


面向对象三大步骤

1.创建类,写类的属性和方法

2.创建类的对象

3.通过对象,调用类的属性和方法

public class Phone {
    //属性,就是一类事物的标志
    String name;
    int price;
    //方法,一类事物的动作
    public void call(){
        System.out.println("这款手机可以拨打电话");
    }
    public void listenMusic(){
        System.out.println("这款手机可以听音乐");
    }
    public void sendMessage(String message){
        System.out.println("你发送的内容为"+message);
    }
}
public class PhoneTest {
    public static void main(String[] args) {
        Phone phone = new Phone();
        phone.name = "IPHONE16PROMAX";
        phone.price = 9999;
//    调用类的属性
        System.out.println("这款手机的名字是"+phone.name+"这款手机的价格是$"+phone.price);
//     调用类的方法
        phone.call();
        phone.listenMusic();
        phone.sendMessage("我爱你啊,龙蛋,哈哈哈哈哈");
    }
}

面向对象内存解析

方法

[修饰符] 返回值类型 方法名([形参列表])[throws 异常列表]{
方法体的功能代码
}

(1)一个完整的方法 = 方法头 + 方法体。


方法头就是 [修饰符] 返回值类型 方法名([形参列表])[throws 异常列表] ,也称为 方法签名 。通 常调用方法时只需要关注方法头就可以,从方法头可以看出这个方法的功能和调用格式。 方法体就是方法被调用后要执行的代码。对于调用者来说,不了解方法体如何实现的,并不影响方 法的使用。


2)方法头可能包含5个部分

(3)方法体:方法体必须有{}括起来,在{}中编写完成方法功能的代码

方法的重载


可变个数的形参

在JDK 5.0 中提供了Varargs(variable number of arguments)机制。即当定义一个方法时,形参的类型可以确定,但是形参的个数不确定,那么可以考虑使用可变个数的形参。

方法名(参数的类型名 ...参数名)
//JDK 5.0以前:采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a ,String[] books);
//JDK5.0:采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a ,String...books);
方法的参数传递机制

递归方法

递归方法调用:方法自己调用自己的现象就称为递归。

递归的分类:直接递归、间接递归。

直接递归:方法自身调用自己。

public void methodA(){
methodA();
}

间接递归:可以理解为A()方法调用B()方法,B()方法调用C()方法,C()方法调用A()方法。

public static void A(){
B();
}
public static void B(){
C();
}
public static void C(){
A();
}


对象数组

数组的元素可以是基本数据类型,也可以是引用数据类型。当元素是引用类型中的类时,我们称为对象数组。


引用类型(Reference Types)是Java中的一种数据类型,它包括类(Class)、接口(Interface)和数组(Array)。引用类型用于存储对象的引用,而不是对象本身。通过引用类型,我们可以访问和操作所引用的对象。


对象数组,首先要创建数组对象本身,即确定数组的长度,然后再创建每一个元素对象,如果不创建,数组的元素的默认值就是 null ,所以很容易出现 空指针异常NullPointerException 。


常用包

java.lang ----包含一些Java语言的核心类,如String、Math、Integer、 System和Thread,提供常用功能java.net ----包含执行与网络相关的操作的类和接口。


java.io ----包含能提供多种输入/输出功能的类。


java.util ----包含一些实用工具类,如定义系统特性、接口的集合框架类、使用与日期日历相关的函数。 java.text ----包含了一些java格式化相关的类


java.sql ----包含了java进行JDBC数据库编程的相关类/接口


java.awt ----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

Java面向对象特性

封装性

为什么要使用封装性

为了实现面向对象开发原则(高内聚、低耦合)

高内聚

类的内部细节自己完成,不允许外部干涉

低耦合

仅暴露少量方法给外部类使用

Java通过四种修饰符(public、却省、protected、private)实现封装性

在实际开发中,public和private使用最常用!

在Java中,属性一般使用private
然后使用set和get方法获取属性值
set一般是无返回值用void(并且括号内用其他变量名去获取属性)如下面例子
get一般用返回值类型
private int age;
public viod setAge(int a){
  age = a;
}
public int getAge(){
    return age;
}


构造器

为什么要使用构造器

new对象,并在new对象的时候为实例变量赋值。

例如下面代码

Scaner scaner = new Scanner(System.in); //有参数型
Person person = new Person(); //无参型
//构造器
public Person(int a){
  age = a;
}

JavaBean

所谓JavaBean,是指符合如下标准的Java类:

类是公共的

有一个无参的公共的构造器

有属性,且有对应的get、set方法

public class JavaBean {
private String name; // 属性一般定义为private
private int age;
public JavaBean() {
}
public int getAge() {
return age;
}
public void setAge(int a) {
age = a;
}
public String getName() {
    return name;
}
public void setName(String n) {
name = n;
}


UML类图

UML(Unified Modeling Language,统一建模语言),用来描述 软件模型 和 架构 的图形化语言。


UML(Unified Modeling Language,统一建模语言),用来描述 软件模型 和 架构 的图形化语言。常用的UML工具软件有 PowerDesinger 、 Rose 和 Enterprise Architect 。


UML工具软件不仅可以绘制软件开发中所需的各种图表,还可以生成对应的源代码。


在软件开发中,使用 UML类图 可以更加直观地描述类内部结构(类的属性和操作)以及类之间的关系(如关联、依赖、聚合等)。


+表示 public 类型, - 表示 private 类型,#表示protected类型


方法的写法: 方法的类型(+、-) 方法名(参数名: 参数类型):返回值类型


斜体表示抽象方法或类。

结语

我是南城余!欢迎关注我的博客!一同成长!

一名从事运维开发的worker,记录分享学习。

专注于AI,运维开发,windows Linux 系统领域的分享!

目录
相关文章
|
1月前
|
Java 物联网 测试技术
Java面向对象程序设计3面向对象基础
Java面向对象程序设计3面向对象基础
169 0
|
5月前
|
Java
面试--什么是面向对象?面向对象三大特性?
面试--什么是面向对象?面向对象三大特性?
30 0
|
9月前
|
C++
C++面向对象的概念和特点
C++面向对象的概念和特点
|
9月前
面向对象概念
1. Coad和Yourdon给出了一个定义:面向对象=对象+类+继承+通信 2. 如果一个软件系统使用这样4个概念设计和实现,则我们认为这个软件系统是面向对象的 什么是对象(object)
48 0
|
9月前
|
搜索推荐
|
9月前
面向对象基础-抽象
面向对象基础-抽象
36 0
|
11月前
|
存储 Java
面向对象程序设计概述
面向对象程序设计概述
162 0
|
存储 PHP 开发者
面向对象基础总结|学习笔记
快速学习面向对象基础总结
108 0
|
PHP 开发者
面向对象的三大特性|学习笔记
快速学习面向对象的三大特性
50 0