Java面向对象——对象和封装(Encapsulation)

本文详细介绍了Java中的面向对象设计,包括构造函数、方法重载、static关键字和final关键字的使用,以及封装的概念和应用。通过实例解析了如何在Java中实现对象的初始化、方法的多样化以及属性的保护。
摘要由CSDN通过智能技术生成

面向对象设计简介

  1. 面向对象设计的优点:
    a. 更符合人类的思维习惯,贴近生活
    b. 代码可重用性高
    c. 代码可维护性高
    d. 提高了软件开发和设计的效率
  2. 面向对象和面向过程的区别:
    a. 面向过程侧重的是算法和流程,按main函数入口,先做什么,再做什么
    b. 面向对象侧重的是数据本身,有哪些对象,对象存储哪些属性(数据),哪些行为
  3. 面向对象设计的过程就是抽象的过程:(提取有用的的数据就是抽象):
    a. 发现类
    b. 发现类的属性
    c. 发现类的方法

构造函数(constructor)

  1. 构造函数常用于对属性进行初始化,或者完成一些初始化操作
  2. 构造函数通常是共有的(即public)。
  3. 构造函数没有返回值类型,void也没有。
  4. 构造函数的函数名需要和类名相同
  5. 构建对象的时候,会调用该类的构造函数,这样构造函数可以强制对属性做初始化。
    示例1
/**
	 * Description
	 *
	 * @Author SnowyHair
	 * @Date 2021/1/16 20:14
	 */
	public class Person {
   
	    public String name;
	    public int age;
	    public String sex;
	
	    //创建构造函数
	    public Person(){
   
	        System.out.println("我是constructor ");
	    }
	
	    public static void main(String[] args) {
   
	        //在new对象的时候会自动调用构造函数
	        Person person=new Person();
	        System.out.println(person);
	    }
	}
输出结果:
我是constructor 
  1. 如果类本身没有显式定义构造函数,则系统会为其添加一个默认的无参的构造函数
    示例2 带参构造函数
package cn.constructor;
	
	/**
	 * Description
	 *
	 * @Author SnowyHair
	 * @Date 2021/1/16 20:14
	 */
	public class Person {
   
	    public String name;
	    public int age;
	    public String sex;
	
	    //创建构造函数
	    public Person(String name){
   
	        System.out.println("我是constructor ");
	        this.name=name;
	    }
	
	    public static void main(String[] args) {
   
	        //在new对象的时候会自动调用构造函数
	        Person person=new Person("张三");
	        System.out.println(person.name);
	    }
	}
输出结果:
我是constructor 
张三

如果只有一个带参的构造函数,那么创建对象的时候就必须传参。在带参构造函数中,传入了一个name参数,但是与Person类的属性name同名,那么就要用this关键字来区分。this关键字用于指代当前对象,this.name=name说白了this.name指的是Person类的name属性,若果不加this输出结果则会为null

方法重载(overload)

  1. 一个类里面可以有多个同名的但参数不一样的方法,叫方法重载
  2. 方法重载满足的条件
    a. 同一个类中
    b. 方法名相同
    c. 参数不同个数顺序类型
  3. 方法的返回值类型与方法重载无关
    示例3
/**
 * Description
 *
 * @Author SnowyHair
 * @Date 2021/1/16 20:14
 */
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值