精华内容
下载资源
问答
  • 在学习群里面看到一位同学问——一个类可以定义多个空参数的构造方法吗 我当是在想应该不行的吧,然后看到那个问问题的同学说:“可以定义局部的空参构造方法”,然后自己看了一下关于局部的知识确实阔以,...

    在学习群里面看到一位同学问——一个类中可以定义多个空参数的构造方法吗
    我当是在想应该不行的吧,然后看到那个问问题的同学说:“可以再定义局部类的空参构造方法”,然后自己看了一下关于局部类的知识确实阔以,话不多说,上代码。

    package e01;
    
    public class jvav {
    
    	public static void main(String[] args) {    
    		Outer outer=new Outer();
    		Outer.Inner inner = outer.new Inner(); // 创建内部类对象
    		inner.show1(); // 测试在成员内部类中访问外部类成员变量和方法
    		outer.test2(); // 测试在外部类中访问内部类成员变量和方法
    	}
    }
    
    //定义外部类Outer
    class Outer {
    	Outer(){
    		System.out.println("调用了外部类的无参构造函数");
    	}
    	int m = 0; // 定义外部类的成员变量
    	// 定义外部类成员方法
    	void test1() {
    		System.out.println("外部类成员方法");
    	}
    	// 定义成员内部类Inner
    	class Inner {
    		Inner(){
    			System.out.println("调用了内部类的无参构造函数");
    		}
    		int n = 1;
    		// 1、定义内部类方法,访问外部类成员变量和方法
    		void show1() {
    			System.out.println("外部类成员变量m="+m);
    			test1();
    		}
    		void show2(){
    			System.out.println("内部类成员方法");
    		}
    	}
    	// 2、定义外部类方法,访问内部类变量和方法
    	void test2() {
    		Inner inner = new Inner();
    		System.out.println("内部类成员变量n="+inner.n);
    		inner.show2();
    	}
    }
    

    看完上述代码就该就清楚了吧,我生成的的是成员内部类,那估计局部内部类应该也行,不得不说他们是真滴牛

    展开全文
  • 定义一个汽车 package leiDeDingYi_leiDeShiYong; public class Car {//定义一个类 String color;//成员变量 车的颜色 int wheelNumber;//成员变量 车的轮胎的数量 float price;//成员变量 车的价格 String...
    	定义一个汽车类
    package leiDeDingYi_leiDeShiYong;
    
    public class Car {//定义一个类
      String color;//成员变量     车的颜色
      int wheelNumber;//成员变量     车的轮胎的数量
      float price;//成员变量     车的价格
      
      String name;//成员变量    车的名字
      int count;//成员变量   车的数量
      float length;//成员变量   车的长度
    
    
      //构造方法
      //构造方法:public +类名称(必须和类名称一样)
      //当无构造方法的时候,系统会自动生成一个无参数的构造方法,即public Car(){}
      //当自己创建完构造方法后系统不会自动给出无参数的构造方法,需要自己定义
      public Car() {}//无参数的构造方法
      public Car(String name) {//一个参数
       this.name=name;//注意,这里的this.点的是成员变量,等号右侧的name由括号内的name传入
      }
      public Car(String name,int count) {//两个参数
       this.name=name;
       this.count=count;
      }
      public Car(String name,int count,float length) {//三个参数
       this.name=name;
       this.count=count;
       this.length=length;
      }
      
      
      //成员方法
      public void speak(){//定义一个无返回值无参数的方法
       System.out.println("我是一个好人");
      }
      //写一个成员方法来求1~1000相加的和
      public void jiSuan() {
       int i,sum=0;
       for(i=1;i<=1000;i++)
        sum+=i;
       System.out.println("1~1000各项相加的和为:"+sum);
      }
      //写一个方法,该方法可以接受一个整数n,计算从1+....+n的和
      //无返回值有参数的成员方法
      public void jiSuan2(int n) {//小括号中就是参数,数据类型+变量名;若有多个参数则用逗号隔开
       int i,sum=0;
       for(i=1;i<=n;i++) 
        sum+=i;
       System.out.println("1~"+n+"各项相加的和为:"+sum);
      }
      //添加add方法,可以计算两个数的和
      //有返回值有参数的成员方法
      public int add(int n1,int n2) {//n1与n2是形参
       int sum=n1+n2;
       return sum;
      }
      //有返回值无参数的构造方法
      public String xinXi() {
       String s="车颜色:"+color+"\t"+"车价格:"+price;
       return s;
      }
      //写一个max方法求三个数的最大值并返回
      public float max(float f1,float f2,float f3) {
       float ma=f1;//ma存放最大值
       if(f2>ma) ma=f2;
       if(f3>ma) ma=f3;
       return ma;
      }
      //写一个printf方法,根据输入的数据输出金字塔
      public void printf(int n) {
       int i,j,k;
       for(i=1;i<=n;i++) {
        for(j=1;j<=n-i;j++)
         System.out.print(" ");
        for(k=1;k<=2*i-1;k++)
         System.out.print("*");
        System.out.println();
       }
      }
      //写一个chengFa方法来输出九九乘法表
      public void chengFa() {
       for(int i=1;i<=9;i++) {
        for(int j=1;j<=i;j++) {
         int sum=i*j;
         System.out.print(i+"×"+j+"="+sum+"\t");
        }
        System.out.println();
       }
      }
    }
    		在main函数中调用使用Car类
    		汽车类Car的申明及其使用
    package leiDeDingYi_leiDeShiYong;
    
    import java.util.Scanner;
    
    public class Car2 {
      public static void main(String[] args) {
       //申明并实例化一个对象
       Car car = new Car();
       
       //给成员变量赋值
       car.color="红色";
       car.wheelNumber=8;
       car.price=1888888.8f;//定义的是float类型,而默认为是double类型,加个f变为float类型
       
       //输出成员变量
       System.out.println("汽车颜色为:"+car.color);
       System.out.println("汽车的轮胎数量为:"+car.wheelNumber);
       System.out.println("汽车的价格为:"+car.price);
       System.out.println("==========================================");
       
       car.name="劳斯莱斯";//虽然在构造方法当中,仍能够正常输出
       System.out.println("汽车的名字:"+car.name);
       Car car1 = new Car("法拉利");//只传入了一个参数,寻找构造方法中与之对应的方法
       System.out.println("汽车的名字:"+car1.name);
       
       Car car2=new Car("红旗",8);
       System.out.println("汽车名字:"+car2.name+"  "+"汽车的数量:"+car2.count);
       
       Car car3=new Car("奔驰", 6, 88.6f);
       System.out.println("汽车名字:"+car3.name+"  "+"汽车的数量:"+car3.count+"汽车的长度:"+car3.length);
       System.out.println("==========================================");
    
    
       //成员方法的调用
       //使用规则:对象名.成员方法名
       car1.speak();//对象名可以是使用过的也可以自己在新创建new上一个对象
       car1.jiSuan();
       //要调用jiSuan2成员方法,需要先读入一个整数
       Scanner sc=new Scanner(System.in);
       System.out.print("请输入一个整数:");
       int n=sc.nextInt();
       car1.jiSuan2(n);//括号中的n接受键盘读入的数,然后传给成员方法中进行计算
       //要调用add成员方法,需要先读入两个整数
       System.out.print("请输入两个整数:");
       int n1=sc.nextInt();
       int n2=sc.nextInt();
       int sum=car1.add(n1, n2);//n1与n2是实参
       System.out.println(n1+"和"+n2+"的和为:"+sum);
       //调用xinXi方法 
       System.out.println(car.xinXi());//上面的代码已经对car的成员变量赋值
       //调用max方法求三个数的最大值
       System.out.print("请输入三个数求最大值:");
       float f1=sc.nextFloat();
       float f2=sc.nextFloat();
       float f3=sc.nextFloat();
       System.out.println("最大值为:"+car1.max(f1,f2,f3));
       //调用printf方法打印*三角形
       System.out.print("请输入你要打印三角形的行数:");
       int n3=sc.nextInt();
       car1.printf(n3);
       //调用chengFa方法输出九九乘法表
       car1.chengFa();
      }
    }
    
    
    
    结果显示:
    汽车颜色为:红色
    汽车的轮胎数量为:8
    汽车的价格为:1888888.8
    ==========================================
    汽车的名字:劳斯莱斯
    汽车的名字:法拉利
    汽车名字:红旗  汽车的数量:8
    汽车名字:奔驰  汽车的数量:6汽车的长度:88.6
    ==========================================
    我是一个好人
    1~1000各项相加的和为:500500
    请输入一个整数:5
    1~5各项相加的和为:15
    请输入两个整数:5 9
    59的和为:14
    车颜色:红色 车价格:1888888.8
    请输入三个数求最大值:343 675 12
    最大值为:675.0
    请输入你要打印三角形的行数:6
         *
        ***
       *****
      *******
     *********
    ***********
    1×1=1 
    2×1=2 2×2=4 
    3×1=3 3×2=6 3×3=9 
    4×1=4 4×2=8 4×3=12 4×4=16 
    5×1=5 5×2=10 5×3=15 5×4=20 5×5=25 
    6×1=6 6×2=12 6×3=18 6×4=24 6×5=30 6×6=36 
    7×1=7 7×2=14 7×3=21 7×4=28 7×5=35 7×6=42 7×7=49 
    8×1=8 8×2=16 8×3=24 8×4=32 8×5=40 8×6=48 8×7=56 8×8=64 
    9×1=9 9×2=18 9×3=27 9×4=36 9×5=45 9×6=54 9×7=63 9×8=72 9×9=81 
    展开全文
  • 如题:new 一个没有构造方法的子类,会调用父类的无参构造方法。如下面的两个
    如题:new 一个没有构造方法的子类,会调用父类的无参构造方法。如下面的两个类:
    public class FatherClass {
    
    	private  int age;
    
    	public FatherClass(int age) {
    		super();
    		System.out.println("初始化值" + age);
    	}
    	
    	public FatherClass(){
    		System.out.println("FatherCalss");
    	}
    }
    public class Subclass extends FatherClass {
    
    	int a;
        boolean flag;
    	String str;
    	
    }

    public class Test {
    
    	public static void main(String[] args) {
    		Subclass subClass = new Subclass();
    		System.out.println(subClass.a);
    		System.out.println(subClass.flag);
    		System.out.println(subClass.str);
            subClass.toString();
    	}
    
    }
    以上三个类分别为父类、子类、测试类。输出结果如下:
    FatherCalss
    0
    false
    null

    从结果可以看出,当子类没有定义无参构造方法时,new一个该类的对象会调用其父类的无参构造方法。同时,还会初始化子类中的参数,int类型被初始化为0,boolean类型的被初始化为false,引用对象被初始化为null。


    展开全文
  • Console.WriteLine("name={0},age={1}",this.name,this.age); } } class Program { static void Main(string[] args) { String na=Console.ReadLine(); int ag=Convert.ToInt32(Console.ReadLine()); ...
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication8
    {
        public class person
        {
            public String name;
            public int age;
            public person()
            {
                this.name = "未知";
                this.age=0;
            }
            public person(String name, int age)
            {
                this.name = name;
                this.age = age;
            }
            public void prin()
            {
                Console.WriteLine("name={0},age={1}",this.name,this.age);
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                String na=Console.ReadLine();
                int ag=Convert.ToInt32(Console.ReadLine());
                person r= new person();
                r.name = na;
                r.age = ag;
                r.prin();
            }
        }
    }
    

    展开全文
  • 题目:设计一个复数complex,分别将复数的实部和虚部作为属性,定义三个构造方法(没有参数时默认为实部和虚部都为0;一个参数时默认为实数,即虚部为0,两个参数时分别为实部和虚部),并定义两个成员方法计算两个复数...
  • //构造函数的初始化列表:在一个类中使用另一个类所需要注意的 #include<iostream> using namespace std; class A { private: int a; public: A(int _a) { a=_a; ...
  • 2、定义两个MyPoint的构造方法一个构造方法不带参数,而且x和y的初始值为0,另一个构造方法有两个参数,参数名为x和y,类型为double,用这两个参数分别作为初始x和y坐标 3、定义一个getD方法,有一个类型为MyPoint...
  • 定义相关构造方法定义返回学生信息字符串的方法;2.班级属性:班级名,人数,成员;其中成员是一个学生的数组;班级定义方法,(1)显示总分和平均分(2)显示最高分和最低分学生信息(3)向班级中添加...
  • 在python定义个构造函数

    万次阅读 2018-09-20 23:56:33
    当我们在编写一个类时,我们希望用户可以通过多种不同的方式来创建一个类实例,而不是局限于_init_()方法提供的一种。这个时候,就需要我们创建多个构造函数了。 &nbsp;&nbsp;&nbsp;&nbsp;下面是...
  • java中一个类中能如何声明多个构造方法
  • 定义一个只能在栈上构造对象的

    千次阅读 2015-08-31 16:33:18
    只能在堆上定义的对象可以通过声明构造函数是私有的,然后提供两个静态的方法一个方法用来获取堆上的对象,一个用来释放堆上的对象。C++中定义一个不能被继承的中第二种方法就是通过这种方式声明了一个不能被...
  • 1、定义学生Student,包含学号、姓名、成绩三属性,默认构造方法、带参数构造方法; 2、Student实现Comparable接口,并实现compareTo方法(按照成绩属性比较大小); 3、定义测试,创建5学生对象,并使用...
  • C#---构造方法构造方法重载

    千次阅读 2017-03-18 21:31:41
    2. 假如有属性,不允许用户随意改动,我们一般吧这属性定义为只读属性,那么这只读类型的属性就不能在实例化后对他赋值了,那我们就要通过构造方法来进行初始化。 二.什么是构造方法? 构造函数是用来创建对象...
  • 定义 class MyClass(object): # object 为基类,可以是其他继承于 object 的基类,但继承基类不是必须的 # 可读可写属性 # 此处定义的属性既是实例属性又是属性, # 即可以通过访问也可以通过实例访问...
  • 定义一个People的子类Student,添加一个属性学好number,添加两个构造方法一个有参构造方法一个无参构造方法, 他们都要调用父类的构造方法或本构造方法来完成对象的初始化, 添加两个成员方法,一个事...
  • 编写一个三角形,能根据输入的3个double类型数据构造三角形对象,定义三个构造方法。 如果这3个数据满足构成三角形的条件,直接构造三角形。否则,如果3个数的最大值大于0,则自动构造以最大值为边的等边三角形。...
  • package practise001; /** ************************************ * @author Hejing * @date 2017年12月13日 * @class Point.java ... *///设计Point用来定义平面上的一个点,用构造方法传...
  • (1)定义一个Person,其中包括:1.定义属性:姓名;年龄;民族作为成员变量。定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化。3.定义多个方法:分别显示相应的属性值,例如getName(){System.out....
  • 1.创建一个带默认构造方法(即无参构造)的,在构造方法中打印一条消息”Hello Constructor” 2.再为这个添加一个重载构造方法,令其接收一个字符串参数 3.并在这个有参构造方法中把“Hello Constructor”和...
  • scala 类定义构造函数与继承

    千次阅读 2016-11-09 23:52:04
    1.scala中如何定义类scala中定义类的方式很简单class Point(xc:Int,yc:Int)上面这行代码就定义一个类 ...2.构造方法类定义可以有多个构造参数。与java中不同的是,scala名称后直接加上构造函数
  • 构造方法与重载:定义一个网络用户,信息有用户 ID、用户密码、 email 地址。在建立的实例时把以上三个信息都作为构造函数的参数输入, 其中用户 ID 和用户密码时必须缺省时 email地址是用户 ID 加上字符串"@...
  • 构造方法定义与使用

    千次阅读 2018-10-26 15:21:04
    构造方法(主要意义是对中属性初始化) 构造方法的三大特征: a.构造方法名称必须与名称相同 【1名称】Persion 【2对象】per1 = 【3】 new 【4 构造方法】Persion(); b.构造方法没有返回值类型声明...
  • Java构造方法

    千次阅读 多人点赞 2019-09-09 19:26:39
    Java构造方法 当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。...可以一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。 Java不支持像C++中那样的复制构造方法,这个不同点...
  • Java定义类方法,属性,构造

    千次阅读 2013-08-12 15:43:36
    ·可被认为是种自定义的数据类型,当然可以使用定义变量了,使用类定义的变量都是“引用变量”。... 中最常见的成员:构造器、方法和Field(也叫“属性”,“成员变量”),三种成员都可以定义0个
  • 文章目录包包(package)的作用JDK中主要的包包的命名规范导入(import)方法方法的使用方法的重载(Overload)以及方法的重写(Override)对象(Object)和(class)面向过程和面向对象对象的本质对象和的概念定义...
  • 定义一个名为 Circle的,其中含有double型的成员变量centerX和...定义一个带参数构造方法,通过给出圆的半径创建圆对象。定义默认构造方法,在该方法中调用有参数构造方法,将圆的半径设置为1.0。画出该的...
  • &nbsp; 一个类的对象作为另一个类的数据成员。...一个类中的数据成员除了可以是int, char, float等这些基本的数据类型外,还可以是某一个类一个对象。用子对象创建新。 &nbsp; &n...
  • 构造方法定义语法与调用时机

    千次阅读 2018-11-18 11:29:48
    为了使程序可以被安全地初始化,C++引入了构造器(也可以成为构造方法)的概念,这是一个在创建对象时被自动调用的特殊方法。Java中也采用了构造器,并且提供了“垃圾回收器”。对于不在使用的内存资源,垃圾回收器...
  • 在Trianglele定义三个Point的实体来表示一个三角形的三个点,再定义构造方法对这三个点进行初始化,然后定义两个方法求三角形的周长、面积。 定义一个测试,在main()中创建一个对象,求给定三点的三角形的...
  • 构造方法一个同名的方法,对象的创建就是通过构造方法完成的。每当实例化一个对象时,都会自动调用构造方法。 构造方法的特点 :(1)构造方法没有返回值 ;(2)构造方法的名称要与本的名称相同。 在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 905,268
精华内容 362,107
关键字:

一个类可以定义零个构造方法