构造方法

Circle 类

落爺英雄遲暮 提交于 2019-12-28 06:19:24
Java Circle 类 Circle类: /* *定义一个名为Circle的类表圆,其中含有double型的成员变量centerX、centerY表示圆心坐标,radius表示圆的半径。 *定义求圆面积的方法getArea()方法和求圆周长的方法getPerimeter()。 *为半径radius定义访问方法和修改方法。 *定义默认构造方法,在该方法中调用有参数构造方法,将圆的半径设置为1.0。 *编写程序测试这个圆类的所有方法。 */ public class Circle { private double centerX ; // x坐标 private double centerY ; // y坐标 private double radius ; // 半径 public Circle ( ) { // 构造函数 this ( 0.0 , 0.0 , 1.0 ) ; } public Circle ( double X , double Y , double R ) { // 带参构造函数 this . centerX = X ; this . centerY = Y ; this . radius = R ; } public double getRadius ( ) { // 设置半径 return this . radius ; } public void

继承

女生的网名这么多〃 提交于 2019-12-28 03:34:40
为什么使用继承 方便修改代码,减少代码量,促进代码使用 使用继承 编写父类 编写子类,继承父类 extends继承关键字 编写父类 编写子类,继承父类 extends继承关键字 不能被继承的父类成员 private成员 子类与父类不在同包, 使用默认访问权限的成员 构造方法 访问修饰符protected 可以修饰属性和方法 本类、同包、子类可以访问 private 本类 默认(friendly) 本类 同包中 public 全能 构造方法 不能被继承, 因此不能重写 方法重写的规则 方法名相同 参数列表相同 返回值类型相同或者是其子类; 访问权限不能低于父类 一个类派生出另一个类派生出来的类叫做子类 被派生出来的类称为父类 父类又被称为超类 基类 构建子类对象时默认先调用父类构造方法 再调用子类构造方法 peivate ->默认-》protected-》public 来源: CSDN 作者: 吃茄子的猫 链接: https://blog.csdn.net/cqzdmm/article/details/103738764

抽象类abstract

半城伤御伤魂 提交于 2019-12-28 02:55:32
抽象类abstract 例如:图形类(正方形、三角形···)、动物类(狗,猫···)、家具类(桌子、椅子)这种一类事物的统称类就是抽象类。创建抽象类需要在class前写上abstract 1.抽象类可以有具体的方法,也可以有抽象的方法。只有抽象类有抽象方法。 //抽象类 public abstract class Demo01 { public Demo01 ( ) { System . out . println ( "父类构造方法执行" ) ; } public abstract void eat ( ) ; public void method ( ) { System . out . println ( "ljkklj" ) ; } } 2.抽象类不能直接创建对象使用,想创建对象,必须有子类继承这个抽象类,然后创建子类的对象使用。子类必须重写父类所有抽象方法(快捷键alt+enter),否则编译不通过。 //子类 public class Demo02 extends Demo01 { public Demo02 ( ) { super ( ) ; System . out . println ( "子类构造方法执行" ) ; } @Override public void eat ( ) { System . out . println ( "fish" ) ; } ;

JAVA的基础知识(一)

半城伤御伤魂 提交于 2019-12-28 02:47:58
1、对象的概念 Java 是 面向对象的编程语言 ,对象就是 面向对象程序设计的核心 。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念 2、对象的特点 对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性 。 对象都是某个类别的实例 。 一切皆为对象,真实世界中的所有事物都可以视为对象。 3、面向对象和面向过程的区别 面向过程:一种较早的编程思想,顾名思义就是 该思想是站着过程的角度思考问题 ,强调的就是 功能行为 ,功能的 执行过程,即先后顺序 ,而每一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现。使用的时候依次调用函数就可以了。 面向过程的设计: 最小的程序单元是函数 ,每个函数负责完成某一个功能,用于接受输入数据,函数对输入数据进行处理,然后输出结果数据,整个软件系统由一个个的函数组成,其中作为 程序入口的函数称之为主函数 ,主函数依次调用其他函数,普通函数之间可以相互调用,从而实现整个系统功能。 面向过程最大的问题在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃。为了解决这一种软件危机,我们提出面向对象思想。 面向过程的缺陷:是 采用指定而下的设计模式 ,在设计阶段就需要考虑每一个模块应该分解成哪些子模块,每一个子模块又细分为更小的子模块,如此类推,直到将模块细化为一个个函数。

(8)python 类和对象

主宰稳场 提交于 2019-12-27 18:55:58
一、类和对象 python可以动态的添加删除变量和方法 类中的方法至少要有一个参数,第一个参数会被绑定到类的实例上,通常命名为self 1.构造函数 类中的构造方法名为 __init__(self,...,...),如果类没有定义构造方法,则会自动包含一个只有self的构造方法 class Person: '这是一个Person类' def __init__(self,name='tom',age=10): print('创建一个Person类') self.name=name self.age=age def say(self,content): print(content) python一个类只有一个构造函数。不向java net 可以重载多个构造函数 2.创建对象 调用构造方法创建类的对象,不需要使用new关键字 p=Person()#打印创建一个Person类 调用 p.name p.say('你好') 赋值 p.name='lilei' 3.动态操作对象 动态添加变量 p.skills=['Singing','Swimming'] 动态删除变量 del p.name 动态创建方法 动态创建方法是,不会自动绑定到第一个参数,所以调用方法时,需要手动绑定 def hi(self): print("say hello") p.hello=hi p.hello(p)

(java补充)抽象和封装

我们两清 提交于 2019-12-27 15:57:50
1. 使用面向对象进行设计 面向对象设计的过程就是抽象的过程。 根据业务相关的属性和行为,忽略不必要的属性和行为,由现实世界中“对象”抽象出软件开发中的对象 第一步:发现类 第二步:发现类的属性 第三步:发现类的方法 类的基本结构,其主要由属性和行为组成,称为类的成员变量(或者成员属性)和成员方法,统称为类的成员(除此之外类的成员还包括构造方法,代码块等) 对象的创建: 通过够造方法来创建对象。 通过对象名.属性名的方式调用属性 通过对象名.方法名的方式调用方法 Static 可以用来修饰 属性、方法和代码快 。Static的变量属于这个类所有,即由这个类创建的所有对象共同用一个 Static 变量 。 通常把Static修饰的属性和方法称为 类属性(类变量)、类方法 。不使用Static修饰的属性和方法,属于单个对象,通常称为 实例属性(实例变量),实例方法 。 类属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。Final 可以用来修饰属性、方法和类。用final修饰的变量称为常量,其值固定不变。 构造方法的名字和类名相同,没有返回值类型。构造方法的作用主要就是在创建对象时执行一些初始化操作,如给成员属性赋初值。 在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。一旦提供了自定义构造方法,系统将不会再提供这个默认的构造方法

抽象和封装

断了今生、忘了曾经 提交于 2019-12-27 12:37:23
面向对象: 从现实中抽象出类分三步: 找出它的种类 找出它的属性 找出它的行为 构造方法: 构造方法的特征: 1、初始化成员变量; 2、如果没有给出构造方法,系统会默认提供一个无参构造方法; 3、如果给我构造方法,会把默认构造方法覆盖; 语法: 访问修饰符 构造方法名 ( ) { //初始化代码 } 构造方法重载: 1、方法重载(overload):在一个类中定义多个相同的名字的方法 2、参数不同; 3、方法重载和返回值和修饰符无关; 重新(overwrite) static关键字: static修饰的调用:类名.属性、类名.方法()、对象.属性、对象.方法() 无static修饰的调用:对象.属性、对象.方法() 在方法里不可以定义static变量 封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问; 封装的好处: 1、隐藏类的实现细节; 2、只能通过规定的方法访问数据 3、方便加入控制语句 4、方便修改实现 封装的步骤: 1、修改属性的可见性 2、创建公有的get和set方法 3、在get和set方法中加入属性控制语句 this: 1、当局部变量和成员变量重名时; 2、当构造方法相互调用时 用法: 1、调属性:this.变量名 2、调用方法:this.方法名() 3、调用构造方法:this()

JAVA第二次作业

吃可爱长大的小学妹 提交于 2019-12-27 11:29:04
(一)学习总结 1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么? public class Test { public static void main(String args[]) { Foo obj = new Foo(); } } class Foo{ int value; public Foo(int intValue){ value = intValue; } } 构造方法是一种特殊的方法,它是一个与类同名且返回值类型为同名类类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。 构造方法重载就是方法名相同,通过传递参数的个数及类型不同以完成方法的调用 此程序不能通过编译,因为此程序中没有空构造方法,当类中定义有参构造方法后,编译器不会再定义默认无参构造方法。 2.运行下列程序,结果是什么?分析原因,应如何修改。 public class Test { public static void main(String[] args) { MyClass[] arr=new MyClass[3]; arr[1].value=100; } } class MyClass{ public int value=1; } 没对arr[1]实例化 3.运行下列程序,结果是什么?说明原因。 public class Test {

实验四,实验五

末鹿安然 提交于 2019-12-27 11:24:37
(一)学习总结 1.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:" + string); } } class Parent extends Grandparent { public Parent() { super("Hello.Grandparent."); System.out.println("Parent Created"); } } class Child extends Parent { public Child() { System.out.println("Child Created"); } } public class Test{ public static void main(String args[]) { Child c = new Child(); } } 编译不能通过,因为super(

Java类和对象

不羁岁月 提交于 2019-12-27 05:43:23
1、Java中的权限修饰符 注:当声明类时不使用public、protected和private修饰符设置类的权限,则这个类预设为包存取范围,即只有一个包中的类可以调用这个类的成员变量或成员方法。同时Java规定,类的权限设定会约束类成员的权限设定,如果类中的成员变量或成员方法没有指定修饰符,则按类的修饰符来做限制。 2、类 (1)this 如果在类中定义的构造方法都不是无参的构造方法,那么编译器也不会为类设置一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。所以 只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。 Java中this代表本类对象的引用,this关键字被隐式地用于引用对象的成员变量和方法。this和对象都可调用成员变量和成员方法,实际上this引用的就是本类的一个对象。 (a)this可作为方法的返回值。 public Book getBook(){ return tihs; // 返回Book类引用 } (b)this可调用类中的构造方法 public class AnyThing{ public static void main(String[] args) { AnyThing any = new AnyThing(); } public AnyThing() { this("this