java初学
1、Scanner类
1)使用
a.导入Scanner类 improt java.util.Scanner;
b.创建Scanner对象 Scanner input = new Scanner(System.in);
c.获取输入数据 int now = input.nextInt();
2)方法
a.String next() 获取字符串
b.Int nextInt() 获取整形数值
c.Double nextDouble() 获取双精度浮点数
d.boolean hasNext() 有输入返回Ture
2、封装 不直接对成员变量进行赋值和调用
1)private将成员变量的使用限制,用此修饰符修饰的成员变量只能在本类中使用
2)构造并引用set()方法来赋值,构造并引用get()方法来提取成员变量值
3)public void setName(String name){
this.name = name;
} //this.name-->之中的this代表调用此方法的那个对象,不能使用在main方法(static修饰的方法)中
3、static关键字 -->静态成员先于对象而产生,是属于类的,被该类的所有对象共享
1)使用方法:-->类名.(变量名或方法名)
2)静态方法中只能调用静态成员(变量或方法)
3)不同对象共享同一个静态区域,会被覆盖
4、代码块
1)局部代码块:生命周期仅在该代码块之中
2)构造代码块:在成员变量初始化之后,构造方法之前执行
3)静态代码块:静态代码块只在类加载的时候执行一次,形成静态区域,
执行顺序:静态成员-->静态代码块-->非静态成员变量-->构造代码块-->构造方法
5.继承 -->class 子类 extends 父类{} 子类从父类中获取非私有的成员,成为继承
1)子类可从父类中继承成员变量和成员方法(非私有)
2)当子类创建对象时,父类的构造方法(无参)首先被调用
3)super([参数列表]):声明创建父类对象-->super.成员可以调用父类的成员
可以使用super()来强制调用父类的有参构造方法
4)方法的重写:子类与父类有同名方法,调用子类的方法
6、修饰符
同一类 --> 同一包 --> 不同包子类-->不同包其他类
public --> √ --> √ --> √ --> √ 全部可用
protectid --> √ --> √ --> √ --> × 同一包或子类
默认 --> √ --> √ --> × --> × 同一包
private --> √ --> × --> × --> × 类本身
final关键字修饰的变量是常量,不能被改变
修饰的方法在子类中不能被重写
修饰的类不能被继承
7、Object类 -->是所有类的超类,可以直接调用
1)hashcode方法,返回该对象的哈希值(同一个对象的哈希值相同,不同对象的哈希值不同)
2)getClass().getName()方法,返回Class名称
3)toString()方法,return getClass().getName()+'@'+Integar.toHexString(HashCode())
System.out.println()方法自动调用toString()方法
4)equals()方法,指示其他某个对象是否与此对象相等
System.out.println(Student.equals(Student2)); 返回布尔值
8、多态 Object类是所有类的超类(父类)
1) 有继承
有方法的重写
父类的引用指向子类的对象
2)可以调用被子类重写的方法,可以调用父类的方法,不能调用子类特有的方法
3)用于参数的传递
main(){
dosth.(new Son());
dosth.(new Daugter());
}
dosth(Father father){
father.play(); //传递不同的参数调用不同的子类重写的play方法
}
4)可以通过强转来调用子类的特有方法
9、抽象类 -->abstract关键字,抽象类不能被实例化(不能new对象)
1)抽象方法 -->public abstract void eat(); 没有代码段
子类从父类继承的抽象方法必须进行实现
2)抽象类引用可以作为参数放入成员方法的参数列表,实际需要的是子类对象
10、接口-->interface 接口名{} 不同类型的类可以调用接口的共同行为 与抽象类不同在于抽象类可以定义非抽象方法
1)接口中的所有方法都是抽象方法,都是Public修饰的抽象方法
2)implements关键字 public class SwimMan implements Swimmer{}
a.SwimMan类必须实现接口的所有抽象方法
b.SwimMan本身成为抽象类 a,b二选一
3)类可以实现多个接口(不能多继承) public class SwimMan implements Swimmer,Runner{}
4)类可以同时继承父类和实现接口
5)接口中可以定义成员变量,并可以被实现该接口的类引用,但是默认为public,final,static类型,不能被改变
11、内部类
1)成员内部类 -->定义在类的内部
引用方法:a.在类内定义一个对象,作为成员变量引用
b.用法写在类的成员方法里,调用该成员方法
c. 内部类名 对象名 = new 类名().new 内部类名()
2)静态内部类
3)局部内部类 -->定义在成员方法里
4)匿名内部类 -->当对象只用一次时直接new完引用就行了,创建匿名内部类
new 类名(){
重写的方法
}; 匿名内部类不是一个类,而是一个对象
12、异常 -->出现异常之后的语句无法执行
1)Throwable类 -->所有异常的超类
a.Error -->不合理的应用程序不应该试图去捕获的异常
b.Exception -->合理的应用程序可以去捕获的异常
RuntimeException -->正常运行期间可能抛出的异常,不需要提前对其处理
ArithmeticException -->算术异常
ArrayIndexOutOfBoundsException -->矩阵超出异常
其他类异常(编译时期异常) -->必须进行处理
2)语法: try{执行时可能出现异常的语句
}catch(Exception e){
捕获异常后希望继续执行的语句}
e.printStackTrace();打印异常跟踪 -->调用了另一个线程
3)多个异常 -->a.连续多个catch代码段,分开处理 b.一个catch中多个异常以'|'分隔
注意:前边 的catch不能是后边catch的父类
4)编译时期异常 -->SimpleDateFormat类 -->Date类和字符串的转换
a.Add throws declaration
抛出编译异常的方法将异常抛给调用该方法的方法去捕获处理
b.Surronded with try/catch
5)throw关键字,用于手动抛出异常对象 -->throw new 异常();
a.抛出运行时异常,可不处理
b.抛出编译时异常,必须处理
c.可以在创建异常对象时通过有参构造方法传递一个信息给父类
6)finally关键字 -->try{}catch(){}finally{这里的语句一定会执行}
7)自定义异常
a.继承异常的父类
b.重写构造方法,传入一个字符串参数并调用super(message)
java初学的更多相关文章
- java初学的分析
java初学的分析第一阶段:入门阶段学习目标:简单项目开发学习内容:1.Java入门书籍,Java基础知识.关于Java入门级的书,给大家推荐过<Java编程思想>.<Java核心技 ...
- 【全网最优方法】JAVA初学:错误: 找不到或无法加载主类HelloWorld
JAVA初学:错误: 找不到或无法加载主类 HelloWorld 我这是看的黑马2019网课(B站)出现的问题. 放一下别人的图,我也是大概的问题:就是javac没问题,java却无论怎么弄都报错. ...
- (Java初学篇)IDEA项目新建流程和软件配置优化以及怎么彻底删除项目
相信很多小伙伴们在初学 Java 时都会出现这样的情况,就是在网上一顿搜索加捣鼓终于把 JDK 和IDEA 这两款软件安装配置好,但是发现面对这个陌生的软件此时却无从下手,那么接下来我就给大家简单地介 ...
- sqlite - java 初学
进来准备使用一种embedded database,即嵌入式数据库,方便随项目本地存储.目前学习打算是sqlite和H2. document:http://www.runoob.com/sqlite/ ...
- Java 初学记录之可执行jar包
环境 jdk7 jre7 当我用jdk7开发的时候,编写完成可执行的jar工具,并且成功使用. 当我在另一台机器安装了jre6,再次运行我的小工具jar 的时候,报错 解决: http://stack ...
- JAVA初学(1):值类型和引用类型的区别
JAVA值类型和引用类型的区别(转) [定义] 引用类型表示你操作的数据是同一个,也就 ...
- Java初学随笔
背景 狡兔三窟,在使用了近7-8年的C#后,考虑到云化的到来,还是要面向更多的语言与技术,近期决定学习scala,先从Java为跳板,最后达到学会并熟练 使用scala的目的. <核心技术> ...
- java初学知识点
public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARG ...
- Java初学(四)
一.图解二维数组 二.图解动态创建二维数组 三.杨辉三角练习: import java.util.Scanner; class Array2Demo{ //实现杨辉三角 public static v ...
- Java初学(三)
一.使用键盘录入数据 三步:1.导入包:import java.util.Scanner; 2.创建键盘录入对象:Scanner sc=new Scanner(System.in); 3.通过 ...
随机推荐
- UVA 11825 Hackers' Crackdown
题目大意就是有一个图,破坏一个点同时可以破坏掉相邻点.每个点可以破坏一次,问可以完整破坏几次,点数=16. 看到16就想到状压什么的. 尝试设状态:用f[i]表示选的情况是i(一个二进制串),至少可以 ...
- lesson - 10 课程笔记
CTRL+C CTRL+D :前者用于结束一个程序,后者用于结束终端输入. --符号 *:匹配任意长度的任意字符 ?:匹配任意一个字符 #: shell 中表注释 \: 脱意符号 []:任意属于字符组 ...
- unity图片后期处理
处理算法如下,在Start方法中分别调用想要的效果就行了.其中,将你需要处理的 图片 拖拽到 image参数上.注意,如果想要图片保持原来的尺寸不被压缩,需要更改图片的导入设置如下图,主要的Textu ...
- IE8下实现兼容rgba
昨天遇到一个问题,要实现一个背景透明的效果,用CSS3用rgba()就能实现,即 background: rgba(0,0,0,.5); 但是要兼容到IE8,就发现没有透明效果,因为IE8不支持rgb ...
- JavaScript的DOM编程--11--插入节点
插入节点: 1). insertBefore(): 把一个给定节点插入到一个给定元素节点的给定子节点的前面 var reference = element.insertBefore(newNode,t ...
- Extjs入门-grid
function rowdblclickFn(grid, rowIndex, e){//双击事件 var row = grid.store.getById(grid.stor ...
- CHECKDB内部:什么是BlobEater?
DBCC CHECKDB注意到有关数据文件页面.一旦整个表的所有页(或一组表,如果配料已启用-看到同样的博客文章我上面提到的),所有的事实都聚集在一起,他们都应该相互抵消.当有额外的事实(在索引B树都 ...
- 前端安全之XSS攻击及防御
xss攻击是什么 ? XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另一种是Stored XSS漏洞.理论上, ...
- 那些年原生js实现的楼层跳转
最近做一个需求~~楼层跳转(京东.淘宝侧边导航),由于现在项目都用框架,所以 jquery是不能再用了,只好自己原生写一个,其实实现起来很简单,无非就是获取到每个楼层距离文档顶部的距离,然后通过控制滚 ...
- 你知道BFC、IFC、FFC、GFC及多栏自适应布局吗?
FC(Formatting Context)格式化内容,常见的FC有BFC.IFC.FFC.GFC四种类型,BFC和IFC是W3C CSS2.1规范提出的概念,FFC和GFC是W3C CSS3规范提出 ...