Java自学笔记(5)

构造器重载

·构造器一般用来创建对象的同时初始化对象。如

class Person{
    String name;
    int age;
    public Person(String n,int a) { name=n; age=a; }
}

·构造器重载使得对象的创建更加灵活,方便创建各种不同的对象。

构造器重载举例:

public class Person{
    public Person(String name,int age,Date d) { this(name,age);... }
    public Person(String name,int age) { ... }
    public Person(String name,Date d) { ... }
    public Person() { ... }
}

·构造器重载,参数列表必须不同

3.9 关键字——this

·在Java中,this关键字比较难理解,它的作用和其词义很接近。

   >它在方法内部使用,及这个方法所属对象的引用;

   >它在构造器内部使用,表示该构造器正在初始化的对象。

·this表示当前对象,可以调用类的属性、方法和构造器

·当在方法内需要用到调用该方法的对象时,就用this。

使用this调用属性、方法

class Person{        //定义Person类
        private String name;
        private int age;
        public Person(String name,int age){
                this.name=name;
                this.age=age;
        }
        public void getInfo(){
                System.out.println("姓名:"+name);
                this.speak();
        }
        public void speak(){
                System.out.println("年龄:"+this.age);
        }
}

1、当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员

2、在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this,增强程序的阅读性

·使用this调用本类的构造器

public class Person {	//定义Person类
	private String name;
	private int age;
	public Person() {	//无参构造
		System.out.println("新对象实例化");
	}
	public Person(String name) {
		this();	//调用本类中的无参构造方法
		this.name=name;
	}
	public Person(String name,int age) {
		this(name);//调用有一个参数的构造方法
		this.age=age;
	}
	public String getInfo() {
		return "姓名:"+name+"年龄:"+age;
	}
}

3、this可以作为一个类中,构造器相互调用的特殊格式

注意:

1、使用this()必须放在构造器的首行!

2、使用this调用本类中其他的构造器,保证至少有一个构造器是不用this的。

JavaBean

·JavaBean是一种Java语言写成的可重用组件。

·所谓javaBean,是指符合如下标准的Java类

    >类是公共的

    >有一个无参的公共的构造器

    >有属性,且有对应的get、set方法

·用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴功能,而不用关心任何改变。

 自动生成    ↑

4.1 面向对象特征之二:继承

·为描述和处理个人信息,定义类Person:

Person

+name : String

+age : int

+getInfo : String
public class Person{
    public String name;
    public int age;
    public String getInfo()
    { ... }
}

继承(1)

为描述和处理学生信息,定义类Student:

Student

+name : String

+age : int

+school : String

+getInfo() :String
public class Student{
    public String name;
    public int age;
    public String school;
    public String getInfo()
    { ... }
}

继承(2)

·通过继承,简化Student类的定义:

public class Person{
    public Stringname;
    public int age;
    public String getInfo() { ... }
}

public class Student extends Person{
    public String school;
}
//Student类继承了父类Person的所有属性和方法,并增加了一个属性school。Person中的属性和方法,Student类都可以利用。

继承(3)

·为什么要有继承?

    >多个类中存在相同属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只要继承那        个类即可。

·在此处多个类称为子类,单独的这个类称为父类(基类或超类)。可以理解为:“子类 is a 父类”

·类继承语法规则:

    class Subcless extends Superclass{ }

继承(4)

类的继承(5)

·子类继承了父类,就继承了父类的属性和方法。

·在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和方法。

·在Java中,继承的关键字用的是“extends”,即子类不是父类的子集,而是对父类的“扩展”。

关于继承的规则:

>子类不能直接访问父类中私有的(private)的成员变量和方法。

类的继承(6)

·Java只支持单继承,不允许多重继承

    >一个子类只能有一个父类

    >一个父类可以派生出多个子类

单继承举例

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值