关于java:Java核心基础第5篇Java面向对象类和对象

Java面向对象之类和对象

一、面向对象概述

Java是齐全的面向对象编程(Object Oriented Programming),简称OOP

面向对象编程的思维形式更加合乎大家的日常生活,因为咱们的事实世界都是由各种各样的对象组成,大到飞机、火车、楼房,小到一只狗、笔记本电脑、一本书都是实实在在的对象。然而每个对象都有本人的状态和行为,咱们能够通过对象来实现肯定的工作。

例如:咱们乘坐飞机从深圳飞到湘西去游览,咱们能够间接应用飞机的航行能力,而不必管飞机这个对象是如何制作的。间接应用即可。

应用面向对象的形式来形容由对象组成的世界,更加合乎人类的思维形式;

因为软件呈现的目标就是为了:

  • 用计算机的语言形容事实世界
  • 用计算机解决事实世界的问题

Java是目前最为风行的面向对象的编程语言(Python可能不服),领有面向对象的四大特色:

  • 封装:暗藏外部实现细节,对外提供可拜访的办法
  • 继承:子类主动继承父类中所有的非公有属性和办法
  • 多态:同一事物,多种不同的示意状态,例如:重载、重写
  • 形象:能够不必管具体的实现,定义对立的形象规定

面向对象编程是Java的核心思想,然而对于初学者来说,学习起来还是比拟形象。所以倡议初学者能够配合书籍一起学习,重复观看,从而把握其中精髓。

二、类

2.1 类的概述

类是Java应用程序中,必不可少的单位;创立类的关键字是:class; 其实咱们在之前的学习过程中曾经接触过类,只是没有专门独自的拿出来讲。

例如:

  • 以下创立了一个名称叫Test01的类
  • 在类中定义了一个main()办法,也是程序的入口
public class Test01{ 
    public static void main(String args[]){
        //创立并且赋值
        int score2[] = {100,90,88,85,66};
        for(int i = 0;i<score2.length;i++) {
            System.out.print(score2[i]+"\t");
        }
    }
}

所以创立类,也没有那么简单。把握其根本语法,而后依据本人的需要进行创立即可。

Java作为一门高级语言,咱们除了能够创立本人定义的类以外,还内置了许多预约义好的类。

例如:

  • Scanner
  • Math
  • String

2.2 预约义类

所谓预约义类,就是Java语言依据理论业务场景,帮咱们预约义好的类。咱们只须要把握如何应用,不须要再去额定创立。

罕用的预约义类:

例如:

  • Scanner :键盘输入
  • Math :数学相干类
  • String :字符串类
  • Date :工夫日期相干类
  • List :汇合类

Java提供的预约义类有点多,好在提供了帮忙文档,咱们能够依据帮忙文档查看:https://www.matools.com/api/java8

前面有章节专门来钻研罕用的预约义类。

2.3 发现类的过程

1、宠物—现实生活中的对象

如何在计算机中形容它?

世界上具体宠物对象,特地多。那么咱们如何用计算机语言来形容这么多宠物对象,如果一个个形容咱们必定是做不到的;所以咱们须要把握其中的法则来对其进行划分。

从事实中形象出类分为三步走:

  1. 第一步:找出它们的品种
  2. 第二步:找出它们的属性
  3. 第三步:找出它们的行为

2、第一步:找出他们的品种

依据以上信息,找出狗的品种;

Java应用的是class关键字来形容类;

//创立一个名为Dog的类
class Dog{
    
}

3、第二步:发现类的特色

咱们能够依据每个对象,抽取出他们雷同的特色(属性);然而任何一个对象都会有多个特色

例如:Dog狗类的特色有

尽管特色很多,然而理论咱们只寄存咱们所须要的特色(属性):

class Dog { 
    String name = "旺财"; // 昵称
    int health = 100; // 衰弱值    
    int love = 0;   // 亲密度
    String strain = "拉布拉多犬"; // 种类 
}

4、第三步:发现类的办法

类的办法也能够称为行为,是动静的。每个办法都能够看出是一个独立的性能

和属性一样,咱们寄存的也是咱们所关怀的行为

class Dog { 
    String name = "旺财";   // 昵称
    int health = 100; // 衰弱值    
    int love = 0;     // 亲密度
    String strain = "拉布拉多犬"; // 种类 
    /* 输入狗的信息 */
    public void print() {
        // 输入狗信息的代码
    } 
}

通过以上三个步骤,咱们就能够创立一个残缺的类。以及指定了类中蕴含的属性和办法。

2.4 类的组成

通过以上发现类的过程,咱们能够看到类的根本组成:

//语法格局:
[< 修饰符>] class < 类名> 
{
    [<属性申明>]
    [<结构器申明>]
    [<办法申明>]
    [{代码块}]
}

1、属性

定义属性:语法

//语法
[修饰符]     数据类型     属性名称     =  [初始值];

//例如
public String name = "来福";    //创立了一个属性,并且给初始值

修饰符:

  • public: 示意公共的,拜访权限最大的,整个我的项目中都能够拜访
  • private: 示意公有的,拜访权限最小的,再能在以后类中拜访

数据类型:

  • 数据类型能够是8种根本数据类型,也能够是援用数据类型
  • 属性的初始值取决数据类型。 int默认值是0String默认值是null

属性名称:

  • 属性也称为全局变量
  • 只须要合乎根本的命名规定和标准即可

2、办法

也称为行为,失常一个办法示意一个具体的性能。例如:跑、吃、睡觉

//语法:
[修饰符]    返回值类型    办法的名称([参数列表]){
    //办法体。就是该办法的具体性能
}    

//案例
public void show(String name){
    System.out.println("我的名字是:"+name);
}

办法组成的四因素:

  • 返回值
  • 办法名称
  • 参数列表
  • 办法体

组成办法的四因素,缺一不可。

2.1 返回值

该办法执行结束之后,把值返回给办法的调用者

  1. 必须定义返回值的具体的类型,如果没有返回值应用void润饰
  2. 如果有具体的返回值,必须在语句块中应用return语句
//没有返回值
//1.应用void润饰
//2.不必应用return
//3.办法的调用者不能应用变量接管内容
public void add(int num1,int num2) {
    int sum = num1+num2;
}

//有返回值的状况
//1.固定返回值类型
//2.办法体前面必须应用return关键字返回具体的数字
//3.办法执行之后的后果,能够应用变量保存起来
public int desc(int num1,int num2) {
    int d = num1-num2;
    return d;
}

2.2 办法名称

只是一个标识符,合乎命名规定和规

标准:

  • 驼峰命名规定; 首个单词首字母小写,之后每隔单词首字母大写 getUserByName();
  • 见名知意

2.3 参数列表

定义方法的时候,参数是可选的。

  1. 形参列表:(形式参数),只是负责定义参数,以及参数的类型和名称。然而该参数每页理论的值
  2. 实参列表:办法的调用时候
//定义方法
// num1,num2示意连个形参
//语法:数据类型 参数名,多个参数之间应用逗号隔开
public int desc(int num1,int num2) {
    int d = num1-num2;
    return d;
}

//办法调用
//abc:变量,接管办法的返回值
//50,20:具体的实参,实参数据类型,个数,程序必须和形参要统一
int acb = p1.desc(50,20);

2.4 办法体

{}示意办法体,也是办法具体的业务实现

public int desc(int num1,int num2) {
    //具体的业务  依据场景不同。具体 也不同
    int d = num1-num2;
    return d;
}

3、构造方法

3.1 构造方法特色

它具备与类雷同的名称;
它不含返回值,也不须要应用void关键字润饰
一个类中能够领有多个构造方法

public class Person{
    public Person(){
        //默认无参结构
    }
    
    public Person(String name){
        //定义有参结构
    }
}

3.2 构造方法作用

依照指定的规定来创建对象,实现对象的初始化工资;(给所有的属性赋值)

//留神: 构造方法不能应用void润饰,否则就是一般办法。丢失了构造方法的作用
//构造方法通过new 关键字 调用。不能通过对象调用  : 
new Person();   //调用Person无参结构
new User("zhangsan", "深圳华丽居", "110"); //调用有参数结构

3.3 构造方法留神

  • Java语言中,每个类都至多有一个构造方法;
  • 如果类的定义者没有显式的定义任何构造方法,零碎将主动提供一个默认的构造方法:
  • Java类中,一旦类的定义者显式定义了一个或多个构造方法,零碎将不再提供默认的构造方法;
  • 结构器的次要作用:利用结构器参数初始化对象的属性。
public Person(String name,int age){
    this.name = name;
    this.age = age;
}

2.5 类图

形容整个类的信息;

  • 用于剖析和设计“类”
  • 直观、容易了解

三、对象

1、简介

  • 万物皆对象,所有的货色都是一个对象
  • 对象是类的具体实现,一个类能够创立任意多个对象
  • 每个对象其实都是一个正本,对象与对象之间互不干涉
  • 关键字: new
  • 应用:

    • 对象名.属性名 –>student.username
    • 对象名.办法名() —>student.eat();

2、创建对象的语法

​ new + 构造方法() : 例如: new Dog(); new Person();
​ 非凡的办法:
​ a.不须要返回值 b.办法名和类名统一;

3、类的拜访机制

  • 在一个类中的拜访机制:类中的办法能够间接拜访类中的成员变量
  • 在不同类中的拜访机制:先创立要拜访类的对象,再用对象拜访类中定义的成员。

4、匿名对象

  • 咱们也能够不定义对象的援用,而间接调用这个对象的办法。这样的对象叫做匿名对象, 如:


- 如果对一个对象只须要进行一次办法调用,那么就能够应用匿名对象。

- 咱们常常将匿名对象作为实参传递给一个函数调用

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理