面向对象学习的补充

类的构造方法

构造方法不是方法

构造方法的作用:用来创建类的对象

如果要创建一个对象

​ 类名 变量名 = new 类名();

​ 类名()实际上就是在调用类的构造方法来创建对象

构造方法的要求

在一个类中,构造方法的名字必须与类名相同,构造方法不能有返回值

语法:
    public class 类名{
        //构造方法
        修饰符 类名(参数列表){
            //方法体
        }
    }

注意:

  1. 如果一个类中,没有声明构造方法,那么编译器,在编译Java代码时,会自动添加一个无参的构造方法,成为默认构造方法,默认的构造方法是空的方法体。
  2. 构造参数是可以有参数的
package com.situ.demo;

public class Student {

	String name;
	String no;
	String sex;
	int age;
	
	//创建一个带有name参数的构造方法
	public Student(String name) {
		//如果在方法中,出现了与类属性相同的变量,就按照就近原则
		//name = name;
		this.name = name;
	}
}


package com.situ.demo;

public class Demo01 {

	public static void main(String[] args) {
		
		//new 后面的就是调用构造方法
		Student student = new Student("Tom");
	}
}

构造方法可以重载

重载:在一个类中存在多个构造方法,这些构造方法必须用用有不同参数列表

public class Student {

	String name;
	String no;
	String sex;
	int age;
	
	//创建一个带有name参数的构造方法
	public Student(String name) {
		//如果在方法中,出现了与类属性相同的变量,就按照就近原则
		//name = name;
		this.name = name;
	}
	public Student(String name,String no,String sex,int age) {
		this.name = name;
		this.no = no;
		this.sex = sex;
		this.age = age;
	}
	public Student() {
		
	}
	
}

方法带有返回值,他不是构造方法,只是类的一个普通方法

public void Student(){
//不会和无参的构造方法冲突,因为存在返回值,所以只是一个普通的方法
}

面向对象的三大特性

封装

广义的封装:编写一个类/接口的过程就是封装的过程

狭义的封装:为了让类更加安全,需要对类进行一定的限制,

  1. 将类的属性私有化,使用private去修饰,被private关键字修饰的东西,不管是方法还是属性或是构造方法都不能够在类的外部使用,添加公共的get/set方法
package com.situ.demo;

public class Student {

	private String name;
	private String no;
	private String sex;
	private int age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getNo() {
		return no;
	}
	public void setNo(String no) {
		this.no = no;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	//创建一个带有name参数的构造方法
	public Student(String name) {
		//如果在方法中,出现了与类属性相同的变量,就按照就近原则
		//name = name;
		this.name = name;
	}
	public Student(String name,String no,String sex,int age) {
		this.name = name;
		this.no = no;
		this.sex = sex;
		this.age = age;
	}
	public Student() {
		
	}
	
}

继承

继承是指类与类之间的关系

当一个类继承另外一个类时,这个类别成为子类,别继承的成为父类,父类也可以叫超类,子类也可以叫派生类

在Java中子类和父类之间使用extendes关键词实现继承

  1. 当子类继承父类时,子类会继承父类所有的属性和方法

  2. 子类还可以拓展属于自己的属性和方法

  3. 子类还可以重写父类中已经定义好的方法,也可以叫覆盖父类的方法

package com.situ.demo;

public class Child extends Parent{

	private String no;

	public String getNo() {
		return no;
	}

	public void setNo(String no) {
		this.no = no;
	}
    //重写
	@Override
	public void init() {
		System.out.println("天天向上");
	}
}


package com.situ.demo;

public class Parent {

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	public void init() {
		System.out.println("好好学习");
	}
}

重写:指在继承关系下,子类中出现了和父类方法名以及参数列表一样的,我们就称子类重写了父类的方法

这时子类的重写的方法,会覆盖掉从父类继承来的方法,因此,在子类对象上调用方法时,执行的是子类的方法

多态

多态:顾名思义:多种状态;接口的多种不同的实现方式即为多态,允许将子类类型的指针赋值给父类类型的指针。

个人通俗的的来讲就是父类可以被多个子类继承,然后父类中的同一个方法,被多个子类同时重写,而表现出的不同的状态,就是多态

public interface Parent//父类接口
{
    public void simpleCall();
}
public class Child_A implements Parent
{
    public void simpleCall();
    {
    //具体的实现细节;
    }
}
 
public class Child_B implements Parent
{
    public void simpleCall();
    {
    //具体的实现细节;
    }
}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值