Java基础知识——面向对象

本文介绍了面向对象编程的基础概念,包括面向对象与面向过程的区别,强调了面向对象的封装、继承和多态特性。类与对象的关系被阐述,类作为对象的模板,对象则是类的实例。详细讲解了类的定义,包括属性(成员变量)的初始化。此外,还探讨了方法,特别是构造方法的作用和调用方式。最后,解释了this关键字的用途,如区分成员变量和局部变量,以及在构造方法中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、面向对象的概念和基础

1.面向对象和面向过程的联系

面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来越明显的显示出来,出现了面向对象思想并成为目前主流的方式。两者都贯穿于软件分析、设计和开发各个阶段,对应面向对象就分别称为面向对象分析、面向对象设计和面向对象编程。C语言是一种典型的面向过程语言,Java是一种典型的面向对象语言。

面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。

面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。 但是,具体到实现部分的微观操作(就是一个个方法),仍然需要面向过程的思路去处理。我们不能把面向过程和面向对象对立起来,他们是相辅相成的,面向对象离不开面向过程。

注:

(1)都是解决问题的思维方式,都是代码组织的方式。

(2)解决简单问题可以使用面向过程

(3)解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程。

2.类和对象的关系

(1)对象是具体的事物;类是对对象的抽象。

(2)类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

(3)类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。

3.类的定义

例:

public class student {
    int id;
    String name;
    int age;  
    void study(){
        System.out.println("好好学习,天天向上!");
    }  
 
   student(){
   }
}

注:每一个源文件只能有一个public class,并且类名和文件名保持一致!

4.属性(成员变量)

属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

 二、方法

1.方法

方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象,类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

格式:

[修饰符]  方法返回值类型  方法名(形参列表) {
    Java语句;
}

2.构造方法

定义:

类构造对象时调用的方法,是一种特殊的“成员方法”,用于对象的初始化,通俗易懂的来说就是为对象赋一个初始值。

构造方法分为无参构造方法、有参构造方法。

声明格式:

[修饰符] 类名 (形参) {
    java语句;
}
 
 
例:
public point (int a,int b){
    
}

调用格式:

类名 对象 = new 类名(实参);
 
 
例:
point p = new point(3,4);

注:

(1)有返回值,但不能定义返回值类型。

(2)如果没有定义一个构造方法,则系统会自动定义一个没有参数的构造方法。

(3)构造方法的方法名一定要与类名一致。

(4)构造方法只能调用一次。

例:

public class point {
 
  public point(){
   System.out.println("开弓没有回头箭!");//无参的构造方法
  
  }
  public point(int_x,int y){
   System.out.println("心中无敌,天下无敌!");//有参的构造方法
  }
}

三、this关键字

定义:

this的本质就是创建好的对象的地址,由于在构造方法调用前,对象已经创建,所以在构造方法中也可以使用this代表当前对象。

this的种类:

(1)this.属性:指的是访问类中的成员变量,用来区分成员变量和局部变量,防止名字重复。

(2)this.方法名称:用来访问本类的成员方法。

(3)this();:用来访问本类的构造方法(“()”中可以有参数,如果有参数,则调用指定的有参构造)。

this的用法:

(1)在程序有二义性的地方,常用this来指明当前对象。普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。

(2)this()不能用于普通方法中,只能用在构造方法中,而且必须是构造方法中的第一条语句。

(3)this不能用于static方法中。

例:

public class User {
    int id;
    String name;
 
    public User() {
    }
    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值