JAVA自学笔记08

JAVA自学笔记08

1、构造方法私有,外界就不能再创建对象
2、说明书的制作过程
1)写一个工具类,在同一文件夹下,测试类需要用到工具类,系统将自动编译工具类;工具类的成员方法一般是静态的,因此在测试类中可直接通过
工具类名.方法名(参数列表);
的方法来调用
2)加入文档注释
@ 文字(作者、版本)
@ param / return
3)用工具解析文档注释:javadoc
格式:javadoc -d 目录名-author-version 工具类名.java
可创建未存在的目录
3、工具类配合说明书使用
1)找到并打开文档
2)点击显示,找出索引,找出搜索框
3)观察该类的构造,需不需要导包(java.lang包下的类不需要导入)等等
4)观察类说明,构造方法及成员方法和版本
成员变量 字段摘要
构造方法 构造方法摘要
成员方法(静态?返回值类型?) 方法摘要
有构造方法就创建对象;没有构造方法可能就是静态的
5)使用

@例题1:观察JAVA1.7API文档,学习math类
@例题2:借助Math工具类,编写猜数字程序

import java.util.Scanner;
public class Guess {public static void main(String[] args) {// TODO 自动生成的方法存根int num = (int)( 100*Math.random()+1);System.out.println(num);int i=5;Scanner sc = new Scanner(System.in);System.out.print("猜数字,范围在0~100间");String s2 = "大了";String s3 = "小了";String s4 = "猜对了,游戏结束";String s5 = "请输入数字";int x=sc.nextInt();for(;x!=num&&i>0;i--) {if(x>num) {System.out.println(s2);System.out.println(s5);}if(x<num) {System.out.println(s3);System.out.println(s5);}x=sc.nextInt();}if(x==num) {System.out.println(s4);}else {System.out.println("五次机会用完,游戏结束");}}
}

3、代码块
1)用{}括起来的代码
2)可分为局部代码块、静态代码块、同步代码块、构造代码块
3)局部代码块:在方法中出现,用于 限定变量生命周期,及早释放,提高内存利用率
4)构造代码块:在类中方法外(类中的成员位置)出现,多个构造方法中 方法中相同的代码存放到一起,每次调用构造方法时都执行(但在main方法之后),并且在构造方法前执行,可以把多个构造方法的共同代码放到一起,用于对对象进行初始化
5)静态代码块:在类中方法外(类中的成员位置)出现,并加上static修饰,即static{…};一般用于给类进行初始化,在加载时就进行,并且只进行一次
执行顺序5、4、构造方法,与实际顺序无关

4、继承
1)定义:多个类(子类、派生类)中存在相同属性和行为时,将这些内容抽取到单独一个类中,只需继承那个类(被称为父类、基类或超类)即可
2)通过extends关键字可以实现类与类的继承
class 子类名 extends 父类名{};
3) 提高代码的复用性、提高代码的维护性、使类与类间产生了关系,是多态的前提
4)弊端:类的耦合性增强,我们需要低耦合高内聚
5)特点:①JAVA中只支持单继承,不支持多继承,但它支持多层继承
6)注意事项:
①子类只能继承父类所有的非私有的成员(方法及变量)
②不要为了部分功能去继承一个类
③子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法
7)使用继承的时机
8)成员变量的关系:
①在子类方法中访问一个变量的查找顺序:首先在子类的局部范围内查找,有就使用;接着在子类的成员范围找,有就使用;最后,在父类的成员(变量)内寻找(仅考虑单继承的情况,其余同理类推)
②this和super的区别
%访问成员变量:
this/super.成员变量
调用本类的成员变量/调用父类的成员变量
%调用构造方法:
this(…) 调用本类的构造方法
super(…) 调用父类的构造方法
%调用成员方法:
this.成员方法名 调用本类的成员方法
super.成员方法名 调用父类的成员方法
③继承中构造方法的关系:子类中所有的构造方法默认都会访问父类的无参构造方法
原因:因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前一定要先完成父类数据的初始化
子类的每一个构造方法的第一条语句默认为super();
④继承中构造方法的注意事项:
如果父类中没有无参构造(即已给有参构造方法)方法,系统调用子类的构造方法将报错
解决方法:解决方法:在子类构造方法最前面加
super(参数列表);
来调用父类其他的带参构造方法即可
或者用子类通过this调用本类的其他构造方法来间接调用父类的带参构造方法
super(…)和this(…)必须放在第一句否则就会出现父类数据多次初始化的情况
⑤一个类的初始化的过程:默认初始化、显示初始化、构造方法初始化

@例题3:看程序写结果

class Father{
static{System.out.println("静态代码块Father");
}
{System.out.println("构造代码块Father");
}
public Father(){
System.out.println("构造方法Father");
}
}
class Son extends Father{
static{System.out.println("静态代码块Son");
}
{System.out.println("构造代码块Son");
}
public Father(){
System.out.println("构造方法Son");
}
}
class Demo{
Son s = new Son();
}

执行结果为:
静态代码块Father
静态代码块Son//加载类时执行
构造代码块Father
构造方法Father
构造代码块Son
构造方法Son

转载于:https://www.cnblogs.com/Tanqurey/p/10485326.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/451477.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/451477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创业,不能兼职

一直在寻找靠谱的技术人才加入自己的创业团队。这个靠谱&#xff0c;不仅是技术靠谱&#xff0c;还要有相同的价值观。价值观的概念也很广泛&#xff0c;除了人品&#xff0c;还有对一些涉及到做人做事最本质的一些理念要相同。最起码的一条是&#xff0c;你是不是真的想好了决…

Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

转载 http://www.cnblogs.com/skywang12345/p/3308852.html转载于:https://www.cnblogs.com/lizhouwei/p/9162251.html

@Controller和@RestController的区别

RestController注解相当于ResponseBody &#xff0b; Controller合在一起的作用。 1)如果只是使用RestController注解Controller&#xff0c;则Controller中的方法无法返回jsp页面&#xff0c;配置的视图解析器InternalResourceViewResolver不起作用&#xff0c;返回的内容就是…

spring AOP解说

1.aop切面编程就是在常规的执行java类中方法前或执行后加入自定义的方法。 比如你本来每天都去打酱油&#xff0c;去&#xff0c;打酱油&#xff0c;回。 现在我每天在你打酱油路上等着&#xff0c;你去打酱油的时候我打你一顿&#xff0c;回来的时候给你点糖果吃。 你根本不…

接口 EnvironmentAware

凡是被Spring管理的类&#xff0c;实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时&#xff0c;获取到系统环境变量和application配置文件中的变量。

简单安装ELK分析日志及使用心得

ELK是由Elasticsearch、Logstash、Kibana三个组件组成的。Elasticsearch&#xff1a;是ELK的核心插件&#xff0c;是一个基于Lucene的搜索服务器&#xff0c;它提供一个分布式多用户能力的全文搜索引擎&#xff0c;能够达到实时搜索&#xff0c;稳定&#xff0c;可靠&#xff0…

寄生式创业更容易成功

上次参加站长大会见识了不少创业团队和个人站长&#xff0c;他们中许多人都曾有过或正在过着苦逼的日子&#xff0c;不过我见到更多的还是他们风光的一面&#xff0c;在这次大会我见到了很多成功的创业团队&#xff0c;例如专门做微博营销的团队、依附于QQ空间的团队、专做腾讯…

JS单引号嵌套的问题,怎么改才能对呢!

JS单引号嵌套的问题&#xff0c;怎么改才能对呢&#xff01; https://zhidao.baidu.com/question/416584343.html document.getElementById(celbid).innerHTML<inputname""type"text"οnblur"celchangeb(celaid,celbid);">;这段代码是JS显…

@RequestParam的作用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 MVC另外一个特性是其提取和解析请求参数的能力。让我们继续重构上面的方法&#xff0c;并在其中添加RequestParam注解&#xff1a; Requ…

前端入门教程(七)CSS属性设置

宽和高 width属性可以为元素设置宽度。 height属性可以为元素设置高度。 块级标签才能设置宽度&#xff0c;内联标签的宽度由内容来决定。 字体属性 文字字体 font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体&#xff0c;则会尝试下一个…

java 深入了解DTO及如何使用DTO

这篇文章主要来谈论一下DTO使用的场合及其带来的好处。首先要理解DTO是什么&#xff1f; DTO就是数据传输对象(Data Transfer Object)的缩写。DTO模式&#xff0c;是指将数据封装成普通的JavaBeans&#xff0c;在J2EE多个层次之间传输。 DTO类似信使&#xff0c;是同步系统中…

图解CPU发展史

随着科学技术和人们对物质水平要求的不断提高&#xff0c;CPU作为电脑的核心组件&#xff0c;也发生了翻天覆地的变化&#xff0c;从1971年只有2300颗晶体管的Intel 4004微处理器到现在的以亿为单位的Intel i7处理器&#xff0c;科技发展的步伐从未停止&#xff0c;随着对原有技…

1031 查验身份证

题目链接&#xff1a;https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392 题解&#xff1a; 1 #include <iostream>2 #include<cstdio>3 #include<string>4 using namespace std;5 6 int main() {7 int weigth[] { 7,9,10…

漫谈程序员系列:一张图道尽程序员的出路

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 《推背图》相传由唐太宗时期的司天监李淳风和袁天罡合著&#xff08;此两人其实是超级武学高手&#xff0c;参见小椴的《开唐》&#xf…

使用@Order调整配置类加载顺序

4.1 Order Spring 4.2 利用Order控制配置类的加载顺序 4.2 演示 两个演示bean package com.wisely.spring4_2.order;public class Demo1Service {}package com.wisely.spring4_2.order;public class Demo2Service {}两个配置类,注意Order配置加载的顺序 package com.wisely.…

[php] 高级教程

include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。 include 和 require 除了处理错误的方式不同之外&#xff0c;在其他方面都是相同的&#xff1a; require 生成一个致命错误&#xff08;E_COMPILE_ERROR&#xff09;&#xff0c;在错误发生后脚本会停止…

常见电脑字符编码总结

一 、背景知识1、计算机中所有的数据都用01串来表示&#xff0c;至于一串01到底代表什么是由软件来设定的。比如&#xff1a;01111101111101010111110111110101 可以理解为一条指令&#xff0c;也可以理解为4个字节的char字符&#xff0c;具体是什么要看这个数据是在代码段还…

jsp+easyui+DataGrid 例子

转自:https://blog.csdn.net/l3922768721/article/details/51597977 导入js和css <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <% taglib uri"http://java.sun.com/jsp/jstl/core"…

@Pointcut的用法

Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. args()args()execution()this()target()target()within()within()annotation其中execution 是用的最多的…

restful风格使用小例

1. 页面传参数写法&#xff1a; http://write.blog.csdn.net/ 参数1 / 参数2 / 参数N restful风格是把参数 直接拼在 / 后面&#xff0c;而不是URL地址重写方式。 2. 后台接收用法&#xff1a;