精华内容
下载资源
问答
  • 一个类可以定义零个构造方法
    千次阅读
    2020-12-04 22:08:02

    题目:

    定义一个复数类,并实现以下复数类的方法:构造方法、得到实部、得到虚部、设置实部、设置虚部、复数的加

    复数类Complex必须满足如下要求:

    (1) 复数类Complex 的属性有:

    RealPart :double型,代表复数的实数部分

    ImaginPart :double型,代表复数的虚数部分

    (2) 复数类Complex 的方法有:

    Complex( ) :构造函数,将复数的实部和虚部都置0.

    Complex( double r ,double i ) :构造函数,形参 r 为实部的初值,i为虚部的初值.

    double getReal():获得复数对象的实部;

    double getImagin ():获得复数对象的虚部;

    Complex complexAdd(Complex a) :将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者.

    Complex complexSub(Complex a) :将当前复数对象与形参复数对象相减,所得的结果仍是一个复数值,返回给此方法的调用者.

    Complex complexMulti(Complex a) :将当前复数对象与形参复数对象相乘,所得的结果仍是一个复数值,返回给此方法的调用者.

    String ToString( ) :把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别为实部和虚部的数据.

    有谁能帮我下,

    解答:

    楼主,类的声明就不写了,我想你已经搞定了,我只贴出方法,这是我前几天刚写的

    CComplex::CComplex()

    {

    RealPart=0.0;

    ImaginPart=0.0;

    }

    CComplex::CComplex(double dblx,double dbly)

    {

    RealPart=dblx;

    ImaginPart=dbly;

    }

    double CComplex::GetReal()const

    {

    return RealPart;

    }

    double CComplex::GetImag()const

    {

    return ImaginPart;

    }

    CString CComplex::ToString()const

    {

    CString str;

    if(m_dblx>=0 && m_dbly>=0)

    {

    str.Format("%lf + %lf i",RealPart,ImaginPart);

    }

    else if(m_dblx>=0 && m_dbly

    再问: 忘了说了,我要的是JAVA编程

    再答: package Complex; public class Complex { private double RealPart; private double ImaginPart; public Complex(){ this.ImaginPart=0.0; this.RealPart=0.0; } public Complex( double r , double i ){ this.ImaginPart=i; this.RealPart=r; } public double getReal(){ return this.RealPart; } public double getImagin (){ return this.ImaginPart; } public Complex complexAdd(Complex complex){ this.RealPart=this.RealPart+complex.RealPart; this.ImaginPart=this.ImaginPart+complex.ImaginPart; return this; } public Complex complexSub (Complex complex) { this.RealPart =this.RealPart -complex.RealPart ; this.ImaginPart=this.ImaginPart-complex.ImaginPart; return this; } public Complex complexMulti (Complex complex) { this.RealPart=this.RealPart*complex.RealPart-this.ImaginPart*complex.ImaginPart; this.ImaginPart=this.RealPart*complex.ImaginPart+this.ImaginPart*complex.RealPart; return this; } public String ToString( ){ String str=null; if(this.getReal()>=0 && this.getImagin()>=0) { str=Double.toString(this.getReal())+"+"+Double.toString(this.getImagin())+"i"; } else if(this.getReal()>=0 && this.getImagin()

    更多相关内容
  • java中一个类可以定义无参构造函数,理由是:可以定义局部的空参构造方法 package demo01; public class Demo01 { public static void main(String[] args) { Outer outer=new Outer(); Outer....

    java中一个类中可以定义多个无参构造函数,理由是:可以再定义局部类的空参构造方法

    package demo01;
    
    public class Demo01 {
    
    	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();
    	}
    }
    
    
    展开全文
  • 面向对象编程的2个非常重要的概念:和对象将具有共同特征和行为的一组事物抽象定义,提出了另外一个新的概念——,里面可以有自己的变量(叫做属性)和函数(叫做方法),每个类可以创造自己的对象实例,对象是面向...

    面向对象编程的2个非常重要的概念:类和对象

    将具有共同特征和行为的一组事物抽象定义,提出了另外一个新的概念——类,类里面可以有自己的变量(叫做属性)和函数(叫做方法),每个类可以创造自己的对象实例,对象是面向对象编程的核心,对象其实也是一种变量!

    一:定义类的语法规范

    class类名:

    属性..

    方法...

    1、类定义使用class关键字,以冒号:作为类体的开始,统一缩进的部分作为类体。

    2、从语法上看,类名只要是一个合法的标识符即可;从可读性来看,类名最好由一个或多个有意义的单词连缀而成的,每个单词首字母大写。

    二:定义类并创建和使用对象

    1、定义空类

    # ‐*‐ coding: utf‐8 ‐*‐

    class A: # 只有类名

    pass

    2、定义学生类

    1)实例属性(实例名.属性)

    通过一个类创建一个对象,那么这个对象就叫做这个类的实例,他们有一下特点:

    1>每个实例的内存是独立的。

    2>类的实例属性是指只有类实例对象才拥有(访问)的属性,形式如self.属性名。

    3>类实例属性一般是在构造方法__init__()中创建和初始化的(构造方法的概念往下看)。

    # ‐*‐ coding: utf‐8 ‐*‐

    class Student:

    def __init__(self,name,age):

    self.name = name #实例属性

    self.age = age #实例属性

    def print_info(self):

    print("我的名字是{},年龄{}".format(self.name,self.age))

    stu1 = Student('小王',18)

    print(stu1.age,stu1.name)

    stu2 = Student('老王',38)

    print(stu2.age,stu2.name)

    D:installpython3python.exe D:/pyscript/test/test.py

    18 小王

    38 老王

    Process finished with exit code 0

    2)类属性(类名.属性)

    直接声明在类下面的属性(属性名前面没有self)叫类属性(也叫静态属性)。

    1>类属性的内存和实例属性内存互相独立。

    2>类属性只能通过类名进行修改,实例对象可以访问类属性,如果一个实例对象去更改类属性实际上是给自己单独添加一个属性。

    3>同一个类的所有实例对象,共享一个类属性,也就是它们访问出来的值是一样的。

    # ‐*‐ coding: utf‐8 ‐*‐

    class Student(object):

    # 学员计数不能存在实例里,因为每个实例的内存是独立的,每实例化一次,数据就会被重置一次,不会累加

    stu_num = 0

    address = "朝阳区"

    def __init__(self,name):

    self.name = name

    Student.stu_num += 1

    stu1 = Student('小王')

    stu1 = Student('中王')

    stu1 = Student('老王')

    print("班级人数",Student.stu_num)

    print("类的地址",stu1.address)

    stu1.address = "东城区"

    print("学生stu1地址",stu1.address)

    print("类的地址",Student.address)

    D:installpython3python.exe D:/pyscript/test/test.py

    班级人数 3

    类的地址 朝阳区

    学生stu1地址 东城区

    类的地址 朝阳区

    Process finished with exit code 0

    3)实例方法

    实例方法只能实例来调用,函数里面第一个参数是self就是实例方法,构造方法也属于实例方法。

    1>实例方法的第一个参数是实例对象本身(self),在对象调用该方法的时候会自动的将自身作为参数传入到方法中。这样在对象的实例方法中才能通过类实例(self)调用它自己的属性或者其它实例方法。

    2>类里面可以有多个实例方法,他们之间可以互相调用。

    # ‐*‐ coding: utf‐8 ‐*‐

    class Student:

    def __init__(self,name,age):

    self.name = name #实例属性

    self.age = age #实例属性

    def print_info(self,hobby):

    print("我的名字是{},年龄{}".format(self.name,self.age))

    print("我的爱好是{0}".format(hobby))

    self.study()# 调用别的实例方法

    def study(self):

    print("我喜欢在www.python66.com学习")

    stu1 = Student('小王',18)

    stu1.print_info("打球")

    stu2 = Student('老王',38)

    stu2.print_info("健身")

    D:installpython3python.exe D:/pyscript/test/test.py

    我的名字是小王,年龄18

    我的爱好是打球

    我喜欢在www.python66.com学习

    我的名字是老王,年龄38

    我的爱好是健身

    我喜欢在www.python66.com学习

    Process finished with exit code 0

    4)类方法

    类方法通过@classmethod装饰器实现,类方法和普通方法的区别是,类方法只能访问类变量,不能访问实例变量,第一个参数是类本身(cls)。(给大家一个应用场景:每多一个学生实例,学生人数+1)。

    # ‐*‐ coding: utf‐8 ‐*‐

    class Student(object):

    __stu_num = 0 # 学员计数需存在类变量里,不能存在每个实例里

    def __init__(self,name):

    self.name = name

    self.add_stu_num() # 相当于Student.add_stu_num() 初始化学员时调用

    @classmethod

    def add_stu_num(cls): # 注意这里调用时传进来的其实是类本身,不是实例本身,所以参数名一般改为cls

    cls.__stu_num += 1

    print("total student num:",cls.__stu_num)

    s1 = Student("张1")

    s2 = Student("张2")

    s3 = Student("张3")

    s4 = Student("张4")

    Student.add_stu_num() # 也可以这样调

    D:installpython3python.exe D:/pyscript/test/test.py

    total student num: 1

    total student num: 2

    total student num: 3

    total student num: 4

    total student num: 5

    Process finished with exit code 0

    5)__init__方法说明

    构造方法,顾名思义就是构造对象用的,在创建对象的时候把对象应该有的特征定义出来,换言之,构造方法是用来是初始化对象的。

    1>构造方法在创建对象时会被调用,不用你手动去调用,在创建对象的刹那就会触发它!类用该方法来创建自己的实例。

    2>如果没有定义或覆盖__init__()方法,则对实例不会施加任何操作。如果不手动为类添加构造方法,python也会自动为类添加一个仅包含 self参数的构造方法。

    3>如果实现了__init__()构造方法,那么创建对象就会调用__init__()方法来进行初始化。

    4>有参构造:就是构造方法中带有参数(self除外),通过这些参数来给实例进行初始化。有参构造需要在创建对象的时候就把参数传递进去。

    5>无参构造:就是构造方法中没有除了self之外的参数,实例化的时候不需要传入参数。

    6)self说明

    1>self作为构造方法或者其他实例方法的第一个参数,他的意思代表对象本身,即每一个对象在调用方法的时候会自动将对象本身传作为该方法的第一个参数。你通过哪个对象去调用方法,那么这个方法的self参数就指向谁。这个过程的实现是python解释器为你做的,你不需要做什么。

    2>self的含义就像中文“我的”一样,每个人介绍自己的时候都说【我的】名字是xxx,虽然都是【我的】两个相同的字,但是含义是代表自身!

    3>self是通用的变量名,你也可以给他起个别的名字(在php中用的是this),但是正常人都不会这么做,因为你瞎改别人就不熟悉了。

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

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

    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();
    	}
    }
    

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

    展开全文
  • 例如“交通工具”,就无法用它来产生一个实例。对应这一现象,Java中提供了抽象,它只能作为父类,不能实例化。定义抽象的作用是将一对象的共同特点抽象出来,成为代表该共同特性的抽象概念,其后在描述某一...
  • 定义一个汽车 package leiDeDingYi_leiDeShiYong; public class Car {//定义一个类 String color;//成员变量 车的颜色 int wheelNumber;//成员变量 车的轮胎的数量 float price;//成员变量 车的价格 String...
  • 满意答案hui123wang推荐于 2017.11.26采纳率:42%等级:11已帮助:7097人public class Car {private int color;... // 型号 0:未定义 1:轿车 2:卡车 3:大巴 4:越野车// 无形参的构造方法public Car(){this.typ...
  • java中一个类中能如何声明多个构造方法
  • 1.定义一个复数Complex,该有代表实部与虚部的成员变量,有两个构造函数Complex() 2016-08-23 0 0 0 暂无评分 其他 1积分下载 如何获取积分?1.定义一个复数Complex,该有代表实部与虚部的成员变量,有两...
  • package chaoxingerya; public class work04 { public static void main(String[] args) { new Undergraduate2(); } } class Student3 { public Student3(){ System.out.println(123);...class Undergraduate2 extends ...
  • 3)Student构造方法中,声明一个空的成绩列表grades。在Student中添加一个方法add_grade(Grade),该方法需要首先验证传入的参数类型是否为Grade,正确的话可以添加到成绩列表中,否则不执行添加操作。 4)创建5...
  • **Python:设计一个Circle(圆),包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。请编写程序验证的功能。class Circle:def -init-(self,tup, radius, color):self.center = tupself....
  • 设计一个名为Rectangle的矩形,这个包括:两个名为width和height的double数据域,它们分别表示矩形的宽和高。width和height的默认值都为1.该包括矩形的无参构造函数(默认构造函数);一个width和height为...
  • 【简答题】输入任一字符串,统计其中数字,字母及其它字符数 .(25分)【单选题】实践基础上的理论创新【多选题】全面贯彻辩证唯物主义和历史唯物主义的思想路线必须【单选题】社会革命根源于【简答题】什么是对立统一...
  • 【其它】复数定义 声明复数Complex,成员变量包括double类型的实部real和double... Complex(),该无参构造方法内部用 this(0,0) 调用前一个构造方法; 2、定义方法:public Complex add(Object obj) 实现两个复数...
  • //构造函数的初始化列表:在一个类中使用另一个类所需要注意的 #include<iostream> using namespace std; class A { private: int a; public: A(int _a) { a=_a; ...
  • 【填空题】1( )2( )3( )4( )5( )6( )7( )8( )【简答题】实现数学运算 声明一个类Math(数学) 在中编写方法:功能为实现加、减、乘、除和求余。 在main方法中实例化1个对象,分别调用5个方法实现运算【简答题】定义 2 ...
  • 综合之前的的学习,做以下实例练习:(建议先不要看代码,自己先试着写;代码仅供参考,有多种实现方法)1....类方法 check_angles():若三角相加 == 180,return True;若不是,return False1 cl...
  • 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()); ...
  • 在python定义个构造函数

    万次阅读 2018-09-20 23:56:33
    当我们在编写一个类时,我们希望用户可以通过多种不同的方式来创建一个类实例,而不是局限于_init_()方法提供的一种。这个时候,就需要我们创建多个构造函数了。 &nbsp;&nbsp;&nbsp;&nbsp;下面是...
  • 话题:定义一个Point,有横坐标x和纵坐标y,定义构造函数初始化点,回答:#include class Point{private:double x;double y;public:Point(): x(0.0), y(0.0) {};Point(double x, double y){this-x = x;this-y = y;}...
  • 构造方法定义与使用

    万次阅读 2018-10-26 15:21:04
    构造方法(主要意义是对中属性初始化) 构造方法的三大特征: a.构造方法名称必须与名称相同 【1名称】Persion 【2对象】per1 = 【3】 new 【4 构造方法】Persion(); b.构造方法没有返回值类型声明...
  • 满意答案Zc0c12013.11.13采纳率:46%等级:12已帮助:7360人//这个方法,完全可以完成你的要求,希望你可以理解哦!!加油,祝你学习进步~~~class Box {double width;double height;double depth;public Box() { // 无...
  • 学生package com.lanxi.demo1_3;public class Student {private String name;private String sex;...@Override//重写toString方法public String toString() {return "Student [name=" + name + ", sex=" + s...
  • 如果本身没有写构造方法,为了让能拥有面向对象的能力,那么开发工具会默认添加一个"不可见的"构造方法,其实就是无参构造方法:class Car { public void color() { System.out.print("I ...
  • Python 定义的继承

    千次阅读 2021-01-29 05:24:45
    定义:*面向对象的基础(实现的过程当中实际上就是对现实事物的进一步抽象)*一种类型(的类型)*的实例称之为对象(例如 ‘瓶子’是一类型的东西, ‘桌子上的那个瓶子’,比较具体 是一个对象)*一种用户...
  • 包名展示 主函数 package Sudent; import Sudent.student; public class studentdemo { ... //无参 构造方法 System.out.println("(无参)学生姓名和成绩为:"); //创建student s0的对象,利用set方法...
  • 3.定义一个学生Student,包含三个属性姓名、年龄、性别,创建三个学生对象存入ArrayList集合中。A:遍历集合遍历输出。B:求出年龄最大的学生,让后将该对象的姓名变为:王者荣耀。package CallName;public class ...
  • 学生构造函数

    2017-11-22 14:18:11
    1. 定义一个学生Student,包括:属性学号,姓名,性别,年龄,方法包括构造方法初始化变量;显示学号方法、显示姓名方法、显示性别方法、显示年龄方法、修改年龄方法。 2. 定义一个测试StudentTest创建两个学生...
  • } int show() { cout<<"name:"< cout< cout< cout<<"sbo:"< return 0; } }; int main() { char *a,*b; char c; int d; a = new char(9); cout<<"input the name:"< cin>>a; cout<<"input the sex:"< cin>>c; cout...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,074,178
精华内容 429,671
关键字:

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