构造方法

Java 常用IO流操作详解-34

限于喜欢 提交于 2020-01-31 17:37:17
1.基本概念 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。 2.IO流的分类 图示:(主要IO流) 3.字节流 (1).字节流基类 1).InputStream InputStream:字节输入流基类,抽象类是表示字节输入流的所有类的超类。 常用方法: // 从输入流中读取数据的下一个字节 abstract int read() // 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b中 int read(byte[] b) // 将输入流中最多 len 个数据字节读入 byte 数组 int read(byte[] b, int off, int len) // 跳过和丢弃此输入流中数据的 n个字节 long skip(long n) // 关闭此输入流并释放与该流关联的所有系统资源 void close() 2).OutputStream OutputStream:字节输出流基类,抽象类是表示输出字节流的所有类的超类。 常用方法: // 将 b.length 个字节从指定的 byte 数组写入此输出流 void write(byte[] b) // 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流 void write(byte[] b, int off,

10.30作业 AB城,构造方法私有化,this关键字

陌路散爱 提交于 2020-01-31 02:10:24
//第八次作业(包括匿名对象、单例模式饿汉式、自动生成对象args[]数组使用、静态关键字) //1、 package practice; class Person { private String name; private static int count; public Person(){ count++; this.name="NONAME - " + count; } public Person(String name){ this.name=name; } public String getInfo(){ return "姓名:"+this.name; } } public class DemoOutput { public static void main(String args[]) { System.out.println(new Person().getInfo()); System.out.println(new Person("A").getInfo()); System.out.println(new Person("B").getInfo()); System.out.println(new Person().getInfo()); } };    //2、 package practice; class Person1{ private String

JAVA常用特性:反射机制

安稳与你 提交于 2020-01-31 00:52:01
反射: 反射的本质就是 通过一段字符串得到一个类的字节码文件 ,随后可以进行属性,方法等的操作。需要依赖 Class工具类 , 反射可以用来解耦合; 反射可以用来进行功能的拓展。 配置文件的读取: 1.通过类加载器 2.通过创建文件夹的方式 ................. ? 129.如何获取一个类的字节码对象 得到字节码对象clazz的方式有三种: 1).对象名.getClass() 2).类名.class 3).Class.forName(String 全类名):包名+类名( 借助Class工具类,反射的基础 ) 130.使用三种方式获 得同一个类字节码对象,是否是同一个对象 是的,因为一个类的Class对象只有一个 131.如何使用字节码对象创建对象 Object o = clazz .newInstance(),字节码对象clazz可以直接使用 newInstance()方法 来创建对象,但前提是该类中存在无参构造方法。 创建对象的另外一种方式是:先使用字节码对象获取构造方法,再利用构造方法调用newInstance(参数列表)方法创建对象。 132.如何使用字节码对象获取公共访问权限的构造方法的数组 Constructor<?>[] c1 = clazz .getConstructors(),使用字节码对象clazz调用getConstructors()方法

面向对象和封装

时光总嘲笑我的痴心妄想 提交于 2020-01-30 15:21:40
面向对象和封装 文章目录 面向对象和封装 面向对象思想的概述 类和对象的关系 类的定义 注意事项 对象的创建及其使用 手机类练习 成员变量和局部变量的区别 封装性 练习 使用private关键字 this关键字的作用 构造方法 定义一个标准的类 面向对象思想的概述 面向过程:当需要实现一个功能的时候,每一个具体的步骤需要亲力亲为,详细处理每一个细节。 面向对象:当需要实现一个功能的时候,不关心具体步骤,找一个具有该功能的代码来完成。 示例: 题目:以[15,20,25,30,50]的样式打印出数组 import java . util . Arrays ; public class FaceTo { public static void main ( String [ ] args ) { int [ ] arrayA = { 15 , 20 , 25 , 30 , 50 } ; //面向过程 System . out . print ( "[" ) ; for ( int i = 0 ; i < arrayA . length ; i ++ ) { if ( i == arrayA . length - 1 ) { System . out . println ( arrayA [ i ] + "]" ) ; } else { System . out . print (

java面向对象---构造方法

时光毁灭记忆、已成空白 提交于 2020-01-30 03:03:29
1.构造方法 A:构造方法概述和作用 创建对象,给对象中的成员进行初始化 B:构造方法格式特点 a:方法名与类名相同 b:没有返回值类型,连void都没有 c:没有具体的返回值 2.构造方法的重载及注意事项 :构造方法注意事项 a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。 b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。 注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法 :给成员变量赋值的两种方式 a:setXxx()方法 b:构造方法 3.一个标准学生类的代码及测试 public class Student { private String name ; private int age ; //我们自定义的类,默认存在一个空参构造构造方法 //构造方法的语法:方法名跟类名相同,没有返回值,连void 也没有 public Student ( ) { System . out . println ( "空参的构造方法调用了" ) ; } //构造方法的重载 public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public int getAge ( ) {

第四次实训作业

我们两清 提交于 2020-01-29 15:28:23
编写“人”类及“测试类”。 源代码: “人”类: package aaa; public class person { private String name; private int age; public person(String name,int age){//构造方法:初始化姓名和年龄 this.name=name; this.age=age; } public person(String name){//构造方法:初始化姓名 this.name=name; } public void setName(String name){ this.name=name;//设置姓名 } public String getName(){ return name;//获取姓名 } public void setAge(int age){ if(age<0) this.age=0; else this.age=age; } public int getAge(){ return age; } public void printfMessage(){ System.out.println("name="+name+",age="+age); } public void addAge(){ age++; } } “测试类”: package aaa; public class

第四次实训作业

心不动则不痛 提交于 2020-01-29 15:26:15
编写“电费管理类”及其测试类。 第一步 编写“电费管理”类 私有属性:上月电表读数、本月电表读数 构造方法:无参、2个参数 成员方法:getXXX()方法、setXXX()方法 成员方法:显示上月、本月电表读数 第二步 编写测试类 创建对象一:上月电表读数为1000,本月电表读数为1200。 要求:调用无参构造方法创建对象; 调用setXXX()方法初始化对象; 假设每度电的价格为1.2元,计算并显示本月电费。 创建对象二:上月电表读数1200,本月电表读数为1450。 要求:调用2个参数的构造方法创建并初始化对象; 调用setXXX()方法修改本月电表读数为1500(模拟读错了需修改); 假设每度电的价格为1.2元,计算并显示本月电费。 package zwzw; public class df { private double d1; private double d2; public df(){ } public df(double d1,double d2) { this.d1=d1; this.d2=d2; } public void qian(double d1,double d2) { System.out.println("电费为:"+(d2-d1)*1.2); } public static void main(String args[]){ df a=new

java反射机制

心已入冬 提交于 2020-01-29 13:28:47
反射在java中占据很重要的地位,spring的IOC/DI背后依靠的就是java的反射机制。不仅spring使用反射机制,Hibernate的ORM框架也是反射机制实现的,AOP动态代理也大量使用了反射技术,在不知不觉中,java的反射机制其实已经被大量应用在我们的程序中。 java反射机制是在运行状态中,对于任意一个类,都能知道这个类的所有属性方法;对于任意一个对象都能调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能成为java的反射机制。 反射的优点就是动态灵活,一切都是在运行时期根据具体情况(配置)决定创建哪种对象、调用哪个方法等。这种灵活性可以方便我们设计解耦,这也是Spring做得最好的事情之一,所以我们可以很方便的替换某些class文件而不需要重新编译相关类。事物都是两面的,反射当然也有缺点,对于编译期能确定的事情,编译器可以或多或少做些优化,而运行期就像解释执行一样,编译器一般没法进行优化,所以使用反射性能要打点折扣;另外反射破坏类的封装性,通过反射我们可以访问类的任何成员,包括private成员,这违反了面向对象设计原则。 java.lang.Class类:反射中最常出现的类,它跟其它JAVA类没什么两样只是名字恰巧叫Class,都是继承于Object类,其实它就是JAVA类的抽象,用来描述类的元数据,比如每个类都有类名、装载器、哈希等

子类对象创建过程的细节

試著忘記壹切 提交于 2020-01-29 10:33:23
如果子类的构造方法第一行写了this调用了本类其他构造方法,那么super调用父类的语句还有吗? 这时是没有的,因为this()或者super(),只能定义在构造方法的第一行,因为初始化动作要先执行。 父类构造方法中是否有隐式的super呢? 也是有的。记住:只要是构造方法默认第一行都是super(); 父类的父类是谁呢?super调用的到底是谁的构造方法呢? Java体系在设计,定义了一个所有对象的父类Object 注意: 类中的构造方法默认第一行都有隐式的super()语句,在访问父类中的空参数构造方法。所以父类的构造方法既可以给自己的对象初始化,也可以给自己的子类对象初始化。 如果默认的隐式super()语句在父类中没有对应的构造方法,那么必须在构造方法中通过this或者super的形式明确要调用的构造方法。 来源: CSDN 作者: little-stars 链接: https://blog.csdn.net/weixin_41874888/article/details/104104430

java 文件操作

馋奶兔 提交于 2020-01-29 06:56:41
在我的前面几篇文章中,我们介绍了流的概念,使用流我们可以任意读取写入文件中的内容,而对于文件的操作来说,更多的是对文件的存储进行操作,创建文件再磁盘上,移动文件到指定位置上,更改文件的文件名等。这些操作更多的是和操作系统以及文件系统打交道。首先我们看File类。 一个File类对象可以存放的是目录,也可以是文件。实际上在java 7开始,引进了Files类,集合Path接口实现了对整个文件操作的分离,Files类操作文件,Path操作路径。这篇文章先介绍File类。 一、File的构造方法 public File(String pathname) public File(String parent, String child) public File(File parent, String child) 主要有三个构造方法,第一个构造方法允许传入一个表示路径的字符串,可以是绝对路径也可以是相对路径。内部调用文件系统类的方法为File对象中的实例域初始化。第二个构造方法允许传入两个字符串,由命名可以看出必然是可以拼接的,当然如果parent为空的话,自然是以child为路径初始化参数,这就等于第一种方式了。第三种构造方法,传入了一个File类的对象作为parent,其实在内部还是将此parent.path的路径值拿出来,执行的是和第二种构造方法一样的操作。 二、文件名和文件路径操作