day06[类与对象.封装.构造方法] 面向对象类与对象三大特征——封装构造方法 能够理解面向对象的思想能够明确类与对象关系能够掌握类的定义格式能够掌握创建对象格式,并访问类中的成员能够完成手机类的练习能够理解对象的内存图能够说出成员变量和局部变量的区别能够理解private关键字的含义能够说出this关键字可以解决的问题能够理解构造方法的含义能够用封装的思想定义一个标准类 day06_01_面向对象思想的概述 day06_02_面向对象思想的举例 面向对象的语言中,包含了三大基本特征,即封装.…
新建一个类Person代表人 创建demo03Person类去调用Person这个类 年龄设置为负数.虽然可以设置为负数.但是这个数值不合理 外部访问这个age就会报错 负数设置不进来.正数也设置不了.不能直接访问可以间接访问. setAge.成员变量age的首字母要变成大写的,前面必须是set 提供 getXxx 方法 / setXxx 方法,可以访问成员变量 调用setAge间接设置了age的值 setAge同时也是可以设置为负数 同样可以输出 方法是有大括号的,可以在里面写代码,代码里面可…
this主要是在重名的情况下 ,起到区分的效果 新建demo04的包,里面新建类Person 通过this.进行区分 this关键字可以解决重名 分不开的问题 这里的person调用的sayHello.那Person就是当前的这个this main方法内输出person这个类.输出的是引用的地址 person类中输出当前的对象.也就是person类自己 输出结果他俩地址是一样的…
练习使用private关键字定义一个学生类.通过这个联系说明一种特殊情况 先定义了name个age分别再定义getter和setter的方法 boolean类型的getter方法不能叫做get开头的.是is开头的这里就是isMale.这是一个特例…
2.1 数据结构有什么用? 当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类 的.好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了. 现实世界的存储,我们使用的工具和建模.每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数 组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删 除,也是在追求更快. 我们java是面向对象的语言,就好似自动档轿车,C语言好似…
任何一个类都可以使用Object类中的方法 ## 1.1 概述 `java.lang.Object`类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类,    那么默认则继承自Object类.例如: 新建Person只有两个属性. 添加上get和set的方法,有参构造,无参构造. 定义Person的对象,然后输出调用ToStirng的方法 打印出来是对象的堆内存中的地址值 直接打印p和p.to…
泛型通配符是一个问号 也是代表不确定的意思 换成Object两个都报错了. 泛型是没有继承概念的,所以上面写Object就会报错.这里应问号 可以代表位置类型 it.next会自动用Object接收 泛型在定义的时候不能用问号!!!参数传递的时候可以用 泛型通配符的高级使用 直接复制例子的代码.做为演示.要求我们只要看源码能看懂就可以了.平时工作中基本用不到 string类型和Object类型的两个报错了. 限定使用类型…
定义计算器的类 用注解的方式去测试计算器类里面 所有的方法 想验证哪个方法 就在方法的上面加上注解@check 执行TestCheck验证方法 控制台的输出 根目录生成了一个 bug.txt文件 重写TestCheck这个类 invoke会出异常,把这个异常抛出去 放到try catch里面去捕获异常 获取的是不带包名的简短的类名 运行程序 生成了文件 故意出错,这里空指针异常 总结…
student定义sleep方法 用反射+配置文件 定义配置文件 src下new file.新建 加载配置文件.Properties里面有一个load方法,可以加载.properties结尾的配置文件 加载到内存中 获取字节码文件对应的类的加载器,用这个类加载器加载到内存 这样就有了ClassLoader ClassLoader下面以偶getResource的方法是获取资源的路径 getResourceAsStream获取资源对应的字节流 这样就返回了字节流 把字节流传到load方法里面,就完成…
为了演示输出一段话 测试add的方法 虽然报错了 但是打印的结果还是输出…
先创建函数式接口 创建测试类 打印长度是10...... 方法引用优化…
这三行代码是固定的在输出之前 浏览器再次访问这个页面. 图片没有显示出来 复制刚才的代码一份出来重命名 加个while循环.把代码都放进去. 然后在while里面开启一个线程.把读取的代码都放在线程里面.然后还需要用try catch捕获异常 启动这个类 再次请求. 再这里输出请求的路径 第一次请求的是html页面.然后下面都是请求的图片.…
自定义文件命名 文件名称被写死了 服务器上传了一张图片,服务器就停止了 把服务器端的代码放在while循环里面 服务器也不用 关闭了. 上传完成后服务器端没有关闭 再来启动客户端,又上传一张投片. 多人同时上传提高效率 文件上传的代码 复制到现成的run方法里面 run方法里面没有声明抛出异常.所以子类重写方法时候,也不能抛出异常 所以上传的代码都要放在try catch中…
表示服务器的类是ServerSocket 启动服务器端 再启动客户端 客户端代码修改获取服务端会写的数据 先启动服务器端,再启动客户端 客户端打印: 服务器端读取:…
system.out就是打印流 System的源码里面out参数就是一个PrintStream类型的 例如路径写的是E盘,.没有e盘这个路径就会抛出异常 用println直接写入的就是97    这个方法可以输出任意类型的数据值…
序列化一遍 反序列化再来一遍 age的修饰符改为public 直接反序列化就会抛出异常 序列化的时候会给Person.class添加序列号,serialVersionUID,.反序列化需要对比这个serialVersionUID 修改了累以后会重新生成一个新的序列号 修改类的修饰符 反序列化没报错…
不想被序列化的成员变量用 transient修饰 age加上static关键字 反序列化age就读取不到正确的值了…
创建person对象.生成构造方法全参和无参.getter和setter 抛出异常:没有序列化异常 接口的源码 啥都没有.就起到一个标记的作用 用二进制存的…
父类是Write 需要抛出异常 声明为它的父类IO异常也是可以的 不指定 默认就是utf-8格式的 两个汉字 6个字节 GBK格式 打开文件的位置用文本打开…
FileReader源码的构造方法.底层使用FileInputStram读取 编码不一样占用的字节大小也不一样.GBK一个汉字占用 2个字节. utf-8一个汉字占用三个字节 转换流InputStreamReader 写的OutputStreamWrite…