构造方法

linkin大话面向对象--java关键字

房东的猫 提交于 2020-02-06 06:51:11
java中的关键字有以下几个,他们不能作任何其它的用途。 发现没,java中的关键字全是小写,java是严格区分大小写的。 abstract default null synchronized boolean do if package this break double implements private threadsafe byte else import protected throw extends instanceof case false int return true catch final interface short try char finally long static void class float native super while for new switch continue public transient static用法: static 表示 “ 全局 ” 或者 “ 静态 ” 的意思,用来修饰成员变量和成员方法,也可以形成静态 static 代码块,但是 Java 语言中没有全局变量的概念。 被 static 修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载, Java 虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此, static

Java第二次作业

帅比萌擦擦* 提交于 2020-02-06 05:32:51
(一)学习总结 1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么? 构造方法是一种特殊的方法,与一般的方法不同是: 1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。 2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。 3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。 构造方法的重载应满足在同一个类中,参数个数或类型不同。 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

Java 第二题

荒凉一梦 提交于 2020-02-06 05:30:20
1.题目 设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括: 两个私有成员变量x和y表示坐标值; 成员变量x和y的访问器和修改器 无参构造方法创建点(0,0);一个有参构造方法,根据参数指定坐标创建一个点; distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间 的距离。 编写主类Test,在主类中输入两点 坐标,创建两个点对象,利用distance() 方法计算这两个点之间的距离。 2.代码 package a; //MyPoint类,表示一个具有x坐标和y坐标的点,该类包括: 两个私有成员变量x和y表示坐标值; 成员变量x和y的访问器和修改器 无参构造方法创建点(0,0);一个有参构造方法,根据参数指定坐标创建一个点; distance方法(static修饰)//返回参数为MyPoint类型的两个点对象之间的距离 public class MyPoint { private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public MyPoint(

《java第二次实验》

自作多情 提交于 2020-02-06 05:28:33
(一)学习总结 1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么? public class Test { public static void main(String args[]) { Foo obj = new Foo(); } } class Foo{ int value; public Foo(int intValue){ value = intValue; } } 构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。 (1)在Java中,允许在一个类中定义多个构造方法。 (2)在创建对象时,系统会自动根据所调用的构造方法中包含的参数类型,个数,选择匹配的构造方法创建对象。 (3)构造方法的注意事项 (4)如果在类中没有明确定义构造方法,系统会自动调用默认的构造方法。 (5)如果指定了构造方法,则不调用默认的构造方法。 (6)如果已经指定了有参的构造方法,而又要调用无参的构造方法,则要在类中追加无参构造。 下面的程序不能通过编译,new Foo()错误,应创建构造函数Foo()。 2.运行下列程序,结果是什么?分析原因,应如何修改 public class Test { public

java第二次作业

半城伤御伤魂 提交于 2020-02-06 05:27:41
(一)学习总结 1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么? public class Test { public static void main(String args[]) { Foo obj = new Foo(); } } class Foo{ int value; public Foo(int intValue){ value = intValue; } } 构造方法:构造方法的作用是初始化对象。构造方法的名称必须与类名称一致;构造方法的声明除不能有任何的返回值类型的声明;不能再构造方法中使用return返回一个值。 构造方法的重载:方法名称相同,参数的类型和个数不同。 此程序不能经过编译。 在一个类中如果已经明确的声明了一个构造方法,那么程序在编译时就不会在生成默认的构造方法,即一个类中应保证至少有一个构造方法。 public class Test { public static void main(String args[]) { Foo obj = new Foo(); } } class Foo{ int value; public Foo( ){ } public Foo(int intValue){ value = intValue; } } 2.运行下列程序,结果是什么?分析原因,应如何修改。 public class

Java内部类

南楼画角 提交于 2020-02-06 03:33:24
—— 你放心去浪,我替你说谎。 一、内部类与外部类之间的关系 1、内部类定义于外部类中,是一个相对独立的实体,对该外部类文件进行编译,会产生两个.class文件,其中内部类的.class文件名名称为 外部类名$内部类名.class。 2、内部类可以访问外部类的所有方法和属性,即使是私有,这是因为内部类持有一个外部类的一个引用。外部类无法直接访问内部类的属性和方法,必须通过内部类的对象引用才能进行访问,如果是静态内部类,外部类可以通过内部类的类名来引用静态变量。 3、内部类如果要声明静态变量,内部类必须声明为静态类。 二、非静态内部类对象的创建 1、在外部类之外创建内部类对象,需要先创建外部类对象,在通过外部类对象调用内部类的构造方法进行实例化。外部类对象只能调用内部类的构造方法,非构造方法以及元素必须通过内部类引用才能调用。 2、如果在外部类内部创建内部类对象,可以直接调用内部类的构造方法进行创建。构造方法可以被外部类调用,其他方法和属性必须通过内部类引用或类名才能调用。 三、内部类的分类 1、成员内部类:定义在外部类中的普通类(非static),属于外部类的成员,可以访问外部类的任何变量和方法。 2、局部内部类:定义在外部类的局部范围内,例如定义在方法中,只允许在方法中访问该内部类,不允许在方法外访问。局部内部类一般用在用于辅助解决问题而又不希望创建一个公共类的场景。 3

Java IO字符流

半腔热情 提交于 2020-02-06 01:58:42
字符流 当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储(如:"学生"两个字占用了四个字节)。所以Java提供一些字符流类,以字符为单位读写数据专门用于处理文本文件。 字符输入流 —— Reader java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信到内存中。它定义了字符输入流的基本共性功能方法。 public void close() // 关闭此流并释放与此流相关联的任何系统资源。 public int read() // 从输入流读取一个字符。 public int read(char[] chars) // 从输入流中读取一些字符,并将它们存储到字符数组chars中。 FileReader类 java.io.FileReader类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。 构造方法: FileReader(File file) // 刨建一个新的FileReader,给定要读取的File对象。 Filereader( String filename) // 创建一个新的 FileReader,给定要读取的文件的名称。 举例: 字符输入流Reader,类似于字节输入流InputStream。字符输入流一单个字符为单位

java之继承中的构造方法

与世无争的帅哥 提交于 2020-02-05 04:59:24
继承中的构造方法 1、子类的构造过程中必须调用其基类的构造方法。 2、子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。   2.1、使用this(argument_list)调用本类的另外构造方法。    2.2、如果调用super,必须写在子类构造方法的第一行。 3、如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类的无参数构造方法。 4、如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。 class SuperClass{ private int n; //SuperClass(){ // System.out.println("SuperClass()"); //} SuperClass(int n){ System.out.println("SuperClass(int n)"); this.n = n; } } class SubClass extends SuperClass{ private int n; SubClass(){ super(300); System.out.println("SuperClass"); } SubClass(int n){ System.out.println("SubClass(int n):"+n); this.n = n; } }

面向对象编程—继承和多态!!!

北战南征 提交于 2020-02-05 03:38:54
面向对象编程——继承和多态 //—引用小峯的讲义(码农小峯) 1、为什么使用继承 从已有的类派生出新的类,称为继承。 在不同的类中也可能会有共同的特征和动作,可以把这些共同的特征和动作放在一个类中,让其它类共享。 因此可以定义一个通用类,然后将其扩展为其它多个特定类,这些特定类继承通用类中的特征和动作。 继承是 Java 中实现软件重用的重要手段,避免重复,易于维护,易于理解。 2、父类和子类 如果类 B 从类 A 派生,或者说类 B 扩展自类 A,或者说类 B 继承类 A, 则称类 A 为"父类",也称为超类、基类; 称类 B 为"子类",也称为次类、扩展类、派生类。 子类从它的父类中继承可访问的数据域和方法,也可以添加新的数据域和新的方法。 定义继承的语法: 修饰符 class 子类名 extends 父类名 例如:Shape 类是父类,其子类可以有 Circle 类、Rectangle 类、Triangle 类,等等。 继承的注意点: 子类不是父类的子集,子类一般比父类包含更多的数据域和方法。 父类中的 private 数据域在子类中是不可见的,因此在子类中不能直接使用它们。 继承是为"是一个"的关系建模的,父类和其子类间必须存在"是一个"的关系,否则不能用继承。 但也并不是所有"是一个"的关系都应该用继承。例如,正方形是一个矩形,但不能让 Square 类来继承

Java面向对象编程练习题(28题集)

冷暖自知 提交于 2020-02-05 03:23:31
【练习题】04.构造方法 编写Java程序模拟简单的计算器。 定义名为Number的类其中有两个整型数据成员n1和n2应声明为私有。编写构造方法赋予n1和n2初始值再为该类定义加addition、减subtration、乘multiplication、除division等公有成员方法分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象调用各个方法并显示计算结果。 public class Number { private int n1 ; private int n2 ; public Number ( int n1 , int n2 ) { this . n1 = n1 ; this . n2 = n2 ; } public void addition ( ) { System . out . println ( "两数相加得:" + ( this . n1 + this . n2 ) ) ; } public void subtration ( ) { System . out . println ( "两数相减得:" + ( this . n1 - this . n2 ) ) ; } public void multiplication ( ) { System . out . println ( "两数相乘得:" + ( this . n1