Java类与对象概念讲解及实战解析

一、开篇

在编程的世界里,Java一种面向对象的编程语言其概念有类、对象、抽象,特征为封装、继承、多态。面向对象核心概念就是“类”和“对象”。今天,我们将通过一个简单的实战项目,深入探讨Java中的类和对象,帮助大家更好地理解和运用它们。

那么我们又怎么将面向对象的编程语言与现实结合,或者说怎么将现实代码化?

以上简单概括说:

对象表示现实世界中某个具体的事物;

类是对一类或某个对象的抽象,是对象共同特征的描述。

二、类与对象的基本概念

类(Class):类是对象的模板或蓝图,它定义了对象的基本结构和行为。类可以理解为一种数据类型,它包含了数据成员(变量)和方法成员(函数)。

对象(Object):对象是类的实例。当我们根据类创建一个具体的实体时,这个实体就是一个对象。对象具有类定义的属性和行为。

三、类与对象的常用方法介绍

1.get 和 set 方法的介绍

get 和 set 方法是用于访问和修改类的属性的常用方法使用get和set方法有多个原因,以下是一些主要的原因:

封装性:使用get和set方法可以隐藏对象的内部状态,防止直接操作对象的属性。这样可以提高代码的封装性和安全性。通 过使用get和set方法,可以控制对对象属性的访问和修改,从而更好地保护对象的内部数据。

灵活性:使用get和set方法可以使代码更加灵活,方便进行扩展和维护。如果需要添加新的属性或修改现有的属性,只需要 修改相应的get和set方法即可,而不需要修改整个类的代码。此外,通过在get和set方法中添加额外的逻辑,可以实现一 些特殊的功能,例如属性的校验和过滤等。

一致性:使用get和set方法可以保证对象属性的命名和访问方式的一致性。这样可以提高代码的可读性和可维护性。同时, 通过使用标准的命名约定,可以使代码更加清晰易懂。

安全性和性能:使用get和set方法可以防止程序直接操作对象的属性,从而避免一些潜在的安全问题。此外,通过在get和 set方法中进行一些性能优化,可以提高程序的运行效率。

位置

Private

默认

protected

public

本类

可见

可见

可见

可见

同包中的类或子类

不可见

可见

可见

可见

其他包中的类

不可见

不可见

可见

可见

其他包中的类

不可见

不可见

不可见

可见

使用get和set方法可以提高代码的封装性、灵活性、一致性、安全性和性能。因此,在面向对象编程中,我们一般使用get和set方法来操作对象的属性。

2.构造方法的介绍

构造方法在面向对象编程中起着非常重要的作用,主要有以下几个原因:

强制性要求:构造方法是对象创建时必须调用的方法。当使用“new”关键字创建一个对象时,会自动调用该对象的构造方法。 如果没有定义任何构造方法,编译器会默认生成一个。

初始化对象:构造方法的主要任务之一是初始化对象。通过在构造方法中设置对象的属性值,可以确保对象在创建时具有正确 的初始状态。

传递参数:构造方法允许在创建对象时向对象传递参数。这些参数可以用于初始化对象的属性或执行其他必要的操作。

实现多个构造方法:通过定义多个构造方法,可以实现多态性,使得子类可以根据需要选择调用哪个构造方法,从而实现不同 的初始化逻辑。

继承与封装:在面向对象编程中,构造方法是实现封装的关键。通过控制对象的创建和初始化过程,可以隐藏对象的内部实现 细节,只暴露必要的方法和属性,提高代码的安全性和可维护性。

四、实战项目:学生管理系统

为了更好地理解类和对象的概念,我们将创建一个简单的“学生管理系统”。这个系统将包括以下功能:添加学生信息、查看学生信息、修改学生信息和删除学生信息。

1.定义类和创建方法

定义学生类

public class Student { 
    private String name; 
    private int age; 
    private String major;
    }

构造方法

	//无参构造方法
    public Student() { 
        }
	//有参构造方法 
	public Student(String name, int age, String major) { 
	this.name = name; 
	this.age = age; 
	this.major = major; 
	    } 

get 和 set 方法

// Getter方法 
public String getName() { 
return name; 
} 

public int getAge() { 
return age; 
} 

public String getMajor() { 
return major; 
} 

// Setter方法 
public void setName(String name) { 
this.name = name; 
} 

public void setAge(int age) { 
this.age = age; 
} 

public void setMajor(String major) { 
this.major = major; 
} 

在这个类中,我们定义了三个私有成员变量(name、age和major),以及一个构造方法和一组get和set方法。这些方法用于获取和设置对象的属性值。构造方法用于创建具有指定属性值的学生对象。

2. 使用学生类创建对象并检验

无参构造方法创建对象

// 无参构造方法
Student student1 = new Student(); 
//利用set方法设置三个值
student1.setName("Alice"); 
student1.setAge(20); 
student1.setMajor("Computer Science"); 
//利用get方法查询并打印结果
System.out.println("姓名:"+student1.getName()+" 年龄:"+student1.getAge()+" 专业:"+student1.getMajor());

运行结果:

有参构造方法创建对象

// 创建学生对象并初始化属性值 
Student student2 = new Student("Bob", 21, "Mathematics"); 
System.out.println("姓名:"+student2.getName()+" 年龄:"+student2.getAge()+" 专业:"+student2.getMajor());

运行结果:

五、总结 

通过本文的实战项目,我们深入了解了Java中的类和对象的概念及其在实际编程中的应用。类是对象的模板,定义了对象的属性和方法;而对象是类的实例,具有类定义的特性。掌握类和对象是学习Java编程的基础,也是迈向更高级编程技能的关键一步。

完整代码

public class Student {
    private String name;  
    private int age;  
    private String major;
    //无参构造方法
    public Student() { 
    }
    //有参构造方法  
    public Student(String name, int age, String major) {  
        this.name = name;  
        this.age = age;  
        this.major = major;  
    }  
  
    // Getter方法  
    public String getName() {  
        return name;  
    }  
  
    public int getAge() {  
        return age;  
    }  
  
    public String getMajor() {  
        return major;  
    }  
  
    // Setter方法  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public void setAge(int age) {  
        this.age = age;  
    }  
  
    public void setMajor(String major) {  
        this.major = major;  
    } 
}
public class StudentSystemDemo {

	public static void main(String[] args) {
		// 无参构造方法
        Student student1 = new Student(); 
        //利用set方法设置三个值
        student1.setName("Alice"); 
        student1.setAge(20); 
        student1.setMajor("Computer Science"); 
        //利用get方法查询并打印结果
        System.out.println("姓名:"+student1.getName()+" 年龄:"+student1.getAge()+" 专业:"+student1.getMajor());

        // 创建学生对象并初始化属性值 
        Student student2 = new Student("Bob", 21, "Mathematics");
        System.out.println("姓名:"+student2.getName()+" 年龄:"+student2.getAge()+" 专业:"+student2.getMajor());

	}

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值