构造方法

java方法的理解

匿名 (未验证) 提交于 2019-12-02 21:52:03
方法的理解: java"方法"的学习目的是为了能够在实际参数更好的去调用,; "方法"分为三种,构造方法,实例方法,类方法 构造方法: 方法名与类名完全一致,没有返回值,构造方法用于实例化对象时给属性设置初始值。当一个类中没有定义构造函数时,系统会默认添加一个无参的构造方法。当在类中自定义构造方法之后,默认的无参构造方法消失(如果需要无参构造方法需手动添加)。 类方法: 用static关键字修饰,可以直接通过类名调用,不需要创建类的对象来调用该方法。 实例方法:可以通过类的实例调用对象的方法,也称为成员方法,一般有返回值(void方法比较特殊)。要实例化对象,通过对象的调用才执行。 void方法的理解:无返回值。 方法的重载的定义:在同一个类中,方法名相同,参数个数或者参数类型不同,称为方法的重载。方法的重载与有无返回值,或者访问修饰符都无关。方法名和参数相同而返回类型不相同,不能说是重载。 java的方法就好比生活中的法律法规,跟据国家的规定,必须做只能做的事情,超过法律的限制就是犯法。 来源:51CTO 作者: 独白的小强 链接:https://blog.csdn.net/weixin_45544006/article/details/100065737

反射获取构造方法

匿名 (未验证) 提交于 2019-12-02 21:52:03
获取所有构造方法,获取指定单参构造方法( 指定类型为String ): 1 package com.mldn.demo; 2 3 import java.lang.reflect.Constructor; 4 5 class Mail{ 6 private String msg; 7 public Mail() {} 8 public Mail(String msg) { 9 System.out.println("【构造方法】调用Mail类单参构造方法,实例化对象。"); 10 this.msg = msg; 11 } 12 @Override 13 public String toString() { 14 return "【toString()覆写】消息内容:" + this.msg; 15 } 16 } 17 public class JavaReflectDemo { 18 public static void main(String[] args) throws Exception { 19 Class<?> cls = Mail.class; 20 Constructor<?> constructors[] = cls.getDeclaredConstructors(); 21 System.out.println("获取所有父类构造方法:" ); 22 for

Java 显示调用隐式调用

匿名 (未验证) 提交于 2019-12-02 21:52:03
当你没有使用父类默认的构造方法时,此时在子类的构造方法中就需要显示的调用父类定义的构造方法。比如:父类:class Animal{ private String name; //如果你定义一个新的构造方法 public Animal(String name) { this.name = name; }}子类:public Dog extends Animal{ //这是你就要显示的调用父类的构造方法,因为子类默认调用的是父类的 //无参构造方法Animal() public Dog(){ super("小狗"); //显示调用父类的有参构造方法 .... //子类的构造方法处理 }}当然,如果你在父类里面把无参的构造方法,显示的写出来了,比如:父类:class Animal{ private String name; //无参的构造方法 public Animal() { ..... //处理 } //如果你定义一个新的构造方法 public Animal(String name) { this.name = name; }}那么在子类的构造方法中,就可以不用显示的调用父类的构造方法,因为子类有个无参的构造方法,子类在构造方法中会自动调用父类已经定义的无参构造方法。不过一般的,在父类中使用了构造方法的重载,在子类中就可以根据需要,调用相应的父类构造方法

Java 多态案例

匿名 (未验证) 提交于 2019-12-02 21:52:03
|--需求说明 用多态的方式写一个宠物生病看医生的例子 |--实现方式 采用多态实现 |--代码内容 1 public class Pet { 2 private String name = "无名氏";// 昵称 3 private int health = 100;// 健康值 4 private int love = 20;// 亲密度 5 6 //无参构造方法 7 public Pet() { 8 } 9 10 //带参构造方法 11 public Pet(String name, int health, int love) { 12 this.name = name; 13 this.health = health; 14 this.love = love; 15 } 16 17 public String getName() { 18 return name; 19 } 20 21 public void setName(String name) { 22 this.name = name; 23 } 24 25 public int getHealth() { 26 return health; 27 } 28 29 30 //设定健康值的范围 31 public void setHealth(int health) { 32 if (health < 0 ||

子类继承父类,方法的执行顺序

匿名 (未验证) 提交于 2019-12-02 21:45:52
public class HelloA { static { System.out.println("static A"); } { System.out.println("I'm A class"); } public HelloA() { System.out.println("HelloA"); } } class HelloB extends HelloA { static { System.out.println("static B"); } { System.out.println("I'm B class"); } public HelloB() { System.out.println("HelloB"); } public static void main(String[] args) { new HelloB(); } }//打印结果:   static A   static B   I'm A class   HelloA   I'm B class   HelloB 总结:执行顺序为:   父类静态代码块   子类静态代码块   父类普通方法   父类构造方法   子类普通方法   子类构造方法 文章来源: 子类继承父类,方法的执行顺序

两道面试题,带你透彻解析Java类加载机制

匿名 (未验证) 提交于 2019-12-02 21:40:30
在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa { static { System.out.println("爷爷在静态代码块"); } } class Father extends Grandpa { static { System.out.println("爸爸在静态代码块"); } public static int factor = 25; public Father() { System.out.println("我是爸爸~"); } } class Son extends Father { static { System.out.println("儿子在静态代码块"); } public Son() { System.out.println("我是儿子~"); } } public class InitializationDemo { public static void main(String[] args) { System.out.println("爸爸的岁数:" + Son.factor); //入口 } } 请写出最后的输出字符串。 正确答案是: 爷爷在静态代码块 爸爸在静态代码块 爸爸的岁数:25 我相信很多同学看到这个题目之后,表情是崩溃的,完全不知道从何入手。有的甚至遇到了几次

1.JAVA基础核心概念

匿名 (未验证) 提交于 2019-12-02 20:59:24
JAVA基础知识 转载至:http://www.runoob.com/java/java-variable-types.html 对菜鸟教程进行核心整理: 一、JAVA理论概念 1、基础概念 Java作为一种面向对象语言主要特性概念如下 接口 :接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。( 可多继承 )接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。 1、多态: 前提是继承 ,不同类对同一消息作出响应。解决应用程序重名问题,参数化多态和包含多态。 2、继承:增加类的 可重用性 ,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。      利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。 3、封装:把过程和数据包围保护(private),通过受 保护接口访问其它对象 4、抽象:忽略主题无关,更加 注意主旨 ,抛弃细节,有过程抽象(函数),数据抽象(数据类型) 5、类:类是一个模板,它描述一类对象的行为和状态。 6、对象:对象是类的一个实例,有 状态和行为 。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 7、实例:每个对象都有独特的实例变量

Java类中的构造方法

匿名 (未验证) 提交于 2019-12-02 20:56:53
Java类中的构造方法 如果一个对象在被创建时就完成了所有的初始化工作,将会很简洁。因此Java语言在类中提供了一个特殊的成员方法――构造方法。 构造方法的作用与定义 构造方法是在对象被创建时初始化对象的成员的方法。构造方法的名称必须与它所在的类名完全相同。构造方法没有返回值,不能用修饰符viod来修饰。 例1:利用构造方法来初始化圆柱体类Cylinder的成员变量。 程序运行结果为: 圆柱底面积= 38.465 圆柱体体积= 307.72 注意:对于“public void Cylinder(double r, int h)”这样的写法就不再是构造方法,而是变成了普通方法,所有在定义构造方法时若加了“void”修饰符,则这个方法就不再被自动调用了。一个类的构造方法的返回值类型就是该类本身。 构造方法的特殊性: (1)构造方法的方法名与类名相同。 (2)构造方法没有返回值,但不能写void。 (3)构造方法的主要作用是完成对类对象的初始化工作。 (4)构造方法一般不能由编程人员显示地直接调用,而是用new来调用。 (5)在创建一个类的对象的同时,系统会自动调用该类的构造方法为新对象初始化。 默认的构造方法 类名(){}; 如果class前面有public修饰符,则默认的构造方法前面也会是public的。 注意:若在一个类中只定义了有参数的构造方法,但却调用无参数的构造方法创建对象

java SE理论

匿名 (未验证) 提交于 2019-12-02 20:48:41
Java入门 变量 运算符 Java的基本知识 这部分自行百度,百度百科会有详细解释,了解java语言的特点, JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 jre:java的运行环境 。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。 jvm:java虚拟机,计算机设备的规范,是一个虚构出来的计算机 jcp: 是一个开放的国际组织,由Java开发者以及被授权者 发展和更新 api:应用程序的编程接口 预先定义的函数 提供应用程序与开发人员基于某软件或硬件访问数据的能力,而又无需访问源码;无需了解内部工作细节 oop:Object Oriented Programming 面向对象编程 ooa:Object-Oriented Analysis 面向对象分析方法 ood: Object-Oriented Desig 面向对象设计 其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。 Java 特点面向对象 简单 分布式 健壮性 安全 可移植 多线程 动态性 编译和解释性 高性能 Java的变量 Java的变量,java中的变量主要包括8种,byte short int long char double float Boolean 相关的封装类型 长度及范围如下: 数据类型

java-day16

我们两清 提交于 2019-12-02 19:53:48
FileWriter 文件字符输出流 extends Writer 构造方法   FileWriter(String filename)   FileWriter(File file) flush()方法:刷新缓冲区,流对象可以继续使用 close()方法:先刷新缓冲区,然后通知系统释放资源,流对象不可以再使用 FileReader 文件字符输入流 构造方法   FileReader(String filename)   FileReader(File file) IO异常处理 JDK7之前 JDK7 JDK9 Properties类 表示一个持久的属性集   Properties集合extends Hashtable<k,v> implement Map<k,v>   可保存流中或从流中加载,Properties集合是一个唯一和IO流相结合的集合   操作字符串特有的方法     Object setProperty(String key,String value)   String getProperty(String key)  通过key找到value值,相当于Map集合get()方法   Set<String> StringPropertynames()  返回属性列表中的键集,相当于Map集合中的keySet()方法   store()方法  把集合中的临数据