类和对象
面向对象概论
类
成员变量
在lava 中,对象的属性也称为成员变量,成员变量可以是任意类型,整个类中均是成员变量什<br>范围。下面通过一个实例来演示成员变量在类中所处的位置。<br>创建一个 Book 类,在类中设置一个name 属性,并为该属性编写 Getter/ Setter 方法。
成员方法
在Java语言中,使用成员方法对应于类对象的行为。以book类为例,它包含getName()和setName()两个方法,这两个成员方法分别为获取图书名称和设置图书名称的方法
权限修饰符
Java中的权限修饰符主要包括private、public、和Protected这些修饰符控制着对类和类的成员变量以及成员方法的访问。
局部变量及其有效范围
this关键字
类的构造方法
1.构造方法没有返回值<br><br>2.构造方法的名称要与本类的名称相同
类的主方法
主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的。
主方法没有返回值。
主方法的形参为数且。其中,args[0]~args[n]分別代表程序的第一个参数到第n个参数,可以使用arga.length获取参数的个数。
对象
创建
<br>Test test =new Test();<br>Test test =new Test("a");<br>
访问属性和行为
引用
销毁
继承,多态,抽象类与接口
类的继承
继承在面向对象开发思想中是一个非常重要的概念,它使整个程序架构具有一定的弹性。在程序中复用一些已经定义完善的类,不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性。
object类
Object类是比较特殊的类,它是所有类的父类,是Java类层中最高层类。用户创建一个类时,除非已经指定要从其他类继承,否则它就是从Java.lang.Object类继承而来的。Java中的每个类都源于Java.lang.Object类,如String类、Integer类等都是继承Object类。除此之外,自定义的类也都继承于Object类。<br>
对象类型的转换
向上转型可以被理解为将子类类型的对象转换为父类类型的对象,即把子类类型的对象之间赋值给父类类型的对象,进而实现按照父类描述子类的效果。
使用instanceof关键字判断对象类型
myobject instanceof ExampleClass
myobject:某类的对象引用<br><br>ExampleClass:某个类
方法的重载
方法的重载就是在同一个类中允许存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可。
final关键字
final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。通常,由final定义的变量为常量。例如,在类中定义PI值,可以使用如下语句
final double PI = 3.14;
多态
多态的意思是多种形态,利用多态可以使程序具有良好的扩展性,并可以对所有类对象进行通用的处理。已经学习过子类对象可以作为父类的对象实例使用,这种将子类对象视为父类对象的做法称为“向上转型”。
抽象类与接口
使用abstract关键字定义的类称为抽象类,而使用这个关键字定义的方法称为抽象方法。抽象方法没有方法体,没有意义,除非它被重写,而承载这个抽象方法的抽象类必须被继承,实际上抽象类除了被继承没有任何意义。
public:修饰符。<br><br>interface:定义接口关键字<br><br>Paintable:接口名称
接口是抽象类的延伸,可以将它看作是纯粹的抽象类,接口中的所有方法都没有方法体,上一节抽象遗留的问题,可以将draw()方法封装到一个接口中,使需要draw()方法的类实现这个接口,同时也继承图形类,这个就是接口的必要性。
异常处理
异常概述
在项目中创建Baulk类,在主方法中定义int型变量,将0作为除数的的算术表达式赋值给该变量。代码如下:
异常的抛出与捕捉
抛出异常
捕捉异常
异常捕获结构由try、catch和finally 3部分组成<br>try语句块存放的是可能发生的Java语句;<br><br>catch语句块在try语句块之后,用来激发被捕获的异常;<br><br>finally语句块是异常处理结果的最后执行部分,无论try语句块中的代码如何退出,都将执行finall语句块<br>
Java常见的异常类
自定义异常
在方法中通过throw关键字抛出异常对象
1.创建自定义异常类<br><br>2.在方法中通过throw关键字抛出异常对象。<br><br>3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕获并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续惊醒下一步操作。<br><br>4.在出现异常的方法的调用者中捕获并处理异常<br>
在方法中抛出异常
throws关键字
若某个方法可能会发生异常,但不想在当前方法中处理这个异常,则可以使用throws、throw关键字在方法中抛出异常。<br><br>9.5.1使用throws关键字抛出异常<br>throws关键字通常被应用在声明方法时,用来指定方法可能抛出的异常。多个异常可使用逗号分隔
运行时异常
runtimeexception异常的种类
字符串
string类
单个字符可以用char类型保存,多个字符组成的文本就需要保存在String对象中。
字符串必须包含在一对双引号(“”)之内
连接字符串
使用“+”运算符可实现连接多个字符串的功能。“+”运算符可以连接多个String对象并产生一个新的String对象。<br><br>例题10.1
字符串也可同其他基本数据类型进行连接。如果将字符串同其他数据类型进行连接,会将其他数据类型的数据直接转换成字符串。
获取字符串信息
使用String类的length()方法可获取声明的字符串对象的长度
str.length();
字符串操作
通过String类的substring()方法可对字符串进行截取。substring()方法被两种不同的重载形式,来满足不同的需要。<br><br>1.substring(int beginlndex)<br><br>该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。
语法:str.substring(int beginIndex)
格式化字符串
String 类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。<br><br>1.format(String format,Object...args)<br><br>该方法使用指定的格式字符和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。
语法:str.format(String format,Object...args)<br><br>format:格式化字符串<br><br>args:格式化字符串中由格式说明字符引用的参数
使用正规表达式
正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。<br><br>正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。<br><br>如下表:<br><br>
字符串生成器
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。而JDK新增了可变的字符序列StringBuilder类,大大提高了频繁增加字符串的效率<br>
常用类库
数字处理
在Java中没有格式化的数据遵循一下原则:<br><br>1.如果数据绝对值大于0.001并且小于10000000,使以常规小数形式表示。<br><br>2.如果数据绝对值小于0.001或者大于10000000,是用科学计数法表示。
system类
System类是JDK中提供的系统类,该类是用final修饰的,所以不允许被继承。Svstem类提供<br>服多系线层面的操作方法,并且这些方法全部都是静态的。System类提供的较常用方法如下:
11.3.1 控制台输出字符<br>1.不会自动换行的print()方法<br>printO方法的语法如下:<br><br>
System.out.print("Hello!");
scanner类
Scanner类首先要引入该类,语法如下:
import java.util.Scanner; //引入Scanner类
时间日期类
例如,使用Date类的第2种构造方法创建一个Date类的对象,代码如下:
long timeMillis = System.currentTimeMillis(); //当前系统时间所经历的毫秒数<br><br>Date date =new Date(timeMillis);
runtime类
Runtime类的常用方法如下: