构造方法和方法重载小结

构造方法和方法重载
 
 作用:创建类的时候同时初始化数据,在创建new的时候.
 声明构造方法:
 public 类名;
 比如 public BOOK(){};

对象变量进行初始化的 创建new的时候自动调用. 
自己写的有参数的构造函数 可以把值传给变量

构造方法简单上说是为了可以根据类属性需要更方便的创建对象
举个例子

比如咖啡这个类
咖啡的类型、成分就可以看成一种属性,咖啡的种类可以是拿铁,摩卡,咖啡材料可以有淡奶,糖,巧克力……
根据需要想放材料什么就放什么.把材料作为参数传进去,就可以泡出咖啡(初始化咖啡这个对象)
也就是说只用传入参数,就可以初始化出一个对象

public coffce{
int sugar; //糖
int milk; //
int chocolate; //巧克力的数量
}
public coffce(int sugar,int milk){
//只要糖和牛奶的咖啡.
}

public coffce(String milk){

////只要牛奶的咖啡.
}

coffce p1=new coffce(1,1);//初始化出一杯1分量糖1分量牛奶的咖啡.
coffce p1=new coffce(1);//初始化出一杯1分量牛奶的咖啡.

方法重载:
 与类的方法名一致,但是参数不一致,通过传入不同的参数实现不同的效果.
 参数不一致可以是参数数据类型、参数个数不一致,
 
 比如是,咖啡泡好了,要堂食还是打包带走?表示接下来的对这杯咖啡的操作.
 比如整数1表示带走,不传入参数表示堂食;

 public void drink()
 {
    System.out.println("堂食");
 }

 public void foo(int n)
 {
 System.out.println("打包"); //方法重载
 }
 

构造方法与方法的区别
1.功能和作用上:
构造方法就是实例化一个对象。
方法是这个实例化出来的对象进行操作.

2.修饰符上:
构造方法可以有任何访问的修饰: public, protected, private或者没有修饰
不同于方法的是,构造方法不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。

3.返回类型上:
方法能返回任何类型的值或者无返回值(void)
构造方法是没有返回值的,不需要void。

4.命名上
构造器使用和类相同的名字,而方法则不同。
一般方法是用动词来命名,表示他是一个行为;
构造器就一般会用名词来命名,说明是为了创建一类,一个个体。

关于方法的继承性:
首先,类和类之间才能叫继承,方法只有覆写或者重载.
如果子类定义了构造方法,不论是无参数还是带参数,类在初始化的时候会先调用父类的构造方法,如果子类没有定义构造方法,就会调用父类的无参数的构造方法,
子类可以使用super()显示调用父类带参数的构造函数,注意,super()语句必须是子类构造方法中第一条有效代码.

注意:构造方法调用类中的其他的构造方法,则可以用this(参数),切该语句放在构造方法的第一条.

public class Student {

    private String name;
    private int age;
    private int classname;

    public Student()
    {

    }

    public Student(String name,int age,int classname)
    {

        this.age=age;//重复的代码直接调用setage,
        this.name=name;
        this.classname=classname;

    }
///父类

////创建一个primarystu类继承Student类;

    class primarystu extends Student{

        public primarystu(){
            super(name,age,classname); //调用父类的构造方法

        }

    }

说白了就是方法的继承原则就是,先调用父亲的.(没有就默认调用,有了就按有的调用,反正只要有一个就可以了.)

构造方法和方法重载示例:

class student{
    int age;
    String name;
    int weight;

public student(){

    System.out.println("没有参数构造函数");
}
public student(String name,int age){

    this.age=age; //当前运行的实例对象.
    this.name=name;
    System.out.println("参数x1构造函数");

}

public student(String name,int age,int weight){

    this.age=age;

    this.weight=weight;
    this.name=name;
    System.out.println("参数x2构造函数");

}
public void study(){
    System.out.println("没有参数构造方法");

}
public void study(int time){
    System.out.println("参数time构造方法");
}

public void study(int time,String object){
    System.out.println("参数time构造方法");

}

public student(String name,int weight)
{

}

public class forStudentarr {

    public static void main(String[] args){

        student stu1=new student();

//这个student,限定了这个数组,只能放student这个类的东西
          //跟int i1=new i()一样,只能放一个类型的数据.

        student stu2=new student("Mings",17);

        student stu3=new student("SHIR",19,36);

        student []numarry=new student[3];
        numarry[0]=stu1;
        numarry[1]=stu2;
        numarry[2]=stu3;

        for(student i:numarry)
        {
            System.out.println(i.name); //输出数组的信息
            System.out.println(i.age); //输出数组的信息

        }

    }

}

__________________________________________________________

运行结果:
没有参数构造函数
参数x1构造函数
参数x2构造函数
null
0
Mings
17
SHIR
19

时间: 2024-12-12 06:09:34

构造方法和方法重载小结的相关文章

(1)构造方法和方法重载 (2)this关键字 (3)方法的传参和递归调用

1.构造方法和方法重载如: Person p = new Person(); - 声明Person类型的引用p指向Person类型的对象 p.show(); - 调用名字为show()的成员方法 1.1 构造方法(重中之重)(1)语法格式 class 类名{ 类名(形参列表){ 构造方法体; } }如: class Person{ Person(){ } } (2)使用方式 a.构造方法的名称与类名完全相同,并且没有返回值类型,连void都不许有: b.当创建新对象时会自动调用构造方法来进行该对

Java中的(构造方法、方法重载、final修饰符使用及继承和抽象)

构造方法: 构造方法的名称和类名相同,没有返回类型,参数列表(类型.个数)不同 方法重载:成员方法和构造方法都可以进行重载 方法名相同但是参数列表(类型,个数)不同,成为方法的重载. 继承:直支持单继承,一个类只能有一个父类 继承要用extends关键字修饰 public class Dog extends Pet{ //方法体 } 子类调用父类公用的成员变量和方法需使用关键字super 如super.方法名 super(成员变量,成员变量....) 方法重写: 方法重写的需求: 1.重写方法和

封装 ,this,构造方法,方法重载

.什么是封装?封装就是将属性私有化,提供公有的方法访问私有属性. 做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问. 如:private String name; public String getName(){ ??????????????????? return; ?????????? } ? ????? public void setName(String name){ ???????????????

【面向对象】方法重载(转载)

[面向对象]方法重载 方法重载 1)方法重载:在同一个类的内部,方法名相同,参数不同 参数不同:指参数的类型.顺序(类型).个数不同 跟参数的名字无关 案例: public class Demo10 { //设计一个计算器类,实现加法的操作,通过方法重载的方式,让类实现不同数据(int,double)的加法运算 public static void main(String[] args){ AddUtil addUtil = new AddUtil(); int sum1 = addUtil.a

构造方法和方法的重载。

---恢复内容开始--- 构造器,又称为构造方法.constructor 构造器用于构造该类的实例. 格式: [修饰符] 类名(形参列表){ //n条语句 } 是一种特殊的方法: 1.通过new关键字调用 2.构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能字啊构造器里调用return. 3.如果我们没有定义构造器,则系统u会自动定义一个无参的构造函数.如果已定义则编译器不会添加! 4.构造器的方法名必须和类名一致! 5.构造该类的对象,经常也用来初始化对象的属性. --

1.28 Java基础总结 ①方法重载②构造方法

1.28 Java基础总结 ①方法重载②构造方法 一.方法的重载在同一个类中,方法名相同,形参列表不同访问修饰符.返回类型和是否重载无关:按顺序对应的形参列表类型不同即可 二.构造器在类创建一个实例时被调用,构造方法只能用new关键字调用目的:初始化实例,初始化类属性(0,0.0,null,false)无返回值,和类名一致,用来构造对象作用:为对象分配内存, 创建并初始化成员变量(通过类创建,所以可以在static方法中调用构造方法) 返回引用,引用.属性:引用.方法(所以无返回值) 三.构造方

面向对象(类,实例变量,方法定义,方法重载,构造方法,this,string类)

面向对象 类是由属性和方法组成 类是所有创建对象的模板 实例变量有默认值 实例变量至少在本类范围中有效 实例变量与局部变量冲突时,局部变量优先 类中方法定义类似于函数定义 修饰符 返回值类型 方法名(参数1,参数2) 异常{ 方法体 } 方法重载 参数个数不同 参数类型不同 参数类型相同但是顺序不同 传入参数的不同自动选取相应方法:典型例子system.out.println(整形,字符串等); 构造方法 1.构造方法无返回值 2.不定义的情况下,有默认的空构造方法 3.在对象构造时,被自动调用

构造方法和方法的重载

** * 方法重载就是在类中可以写多个方法名相同的方法,但这些方法除了方法名相同外,其参数类型,参数个数 * 和方法的返回值,都不相同. * *而构造方法就是一种特殊的方法,其的方法名必须和类名相同. *构造方法没有返回值类型,没有void *构造方法不能从父类中继承 *构造方法可以重载,一个class可以有多个构造方法,不同的对象根据参数的不同 * 选择合适的构造方法. * 构造方法不能直接通过方法名来引用,必须用new运算符 * 在构造方法中可以调用当前类和其父类的另一个构造方法,但必须是方

Java ——对象 类 方法重载 构造方法 封装

本节重点思维导图 快捷键 生成代码:alt+shift+s 提取变量:alt+shift+L 快速复制行:alt+ctrl+向上或向下的箭头 删除行:ctrl+d 类:对同一种事物共同属性和行为的抽象 对象:根据类创建出来的具体的实物 方法重载 在同一个类中提供多个同名不同参的方法. 重载要求:方法名称相同,但参数的   [ 类型不同     or   参数的个数不同     or     参数的顺序不同] public class Demo { public void fun1() { } p