java基础(2)

一、类和对象

类属于对象,类是对象的具体表达,对象是类的具体实例,类描述一类对象的行为和状态

例如:我们以一种动物作为我们的对象,去描述他,这里我们以狗举例

1、狗类

狗的种类有哈士奇,京巴,狮子狗

狗的属性有:名字、品种、颜色

方法---狗的特性有:叫、摇尾巴和跑

构造方法的特性:方法名用类名来作为方法名 ,没有返回值,也不需要void

构造方法的用途:生成对象

2、调用对象或方法

Dog dog = new Dog();

System.out.println(dog.getColor());

dog.barking();

如何使用其他类

使用其他类,则需要导入其他类

import org.apache.commons.dbutils.QueryRunner;

不用导入的类java.lang下的类会自动导入,不需要import语句

设计类时尽量少公开属性和方法

子类继承父类

public class HsqDog extends Dog {

}

3、静态类的属性和调用方法

JVM只有一份,如static String NAME = "狗"

调用的时候用类名点.静态成员去调用

final属性不能修改:只能在定义时赋值

4、子类调用父类的构造方法

在子类构造方法里第一个语句:super();

父类确定有一个方法,各个子类不完全一样,定义为抽象方法,父类不实现,子类实现

5、抽象类的特征及使用

使用abstract修饰方法和类

抽象类不能实例化

一般情况下很少写抽象类,可以将多数子类相同的逻辑,在父类里实现;少数子类有不同的逻辑,可以重写父类的方法

6、接口

所有方法都是抽象,只声明不实现

例如public class Dog implements IDog

7、类,抽象类,接口的区别

接口:方法一个都不能实现

抽象类:可以实现一些方法

普通类:必须实现所有的方法

8、内部类

内部类非静态内部类可以访问外部类的属性和方法;静态内部类只能访问外部类的静态属性和方法

静态的内部类可以有静态属性或方法,通过类名逐层调用即可

生成一个类文件:外部类名$内部类名.class

例如:Dog$T.class

例如

public class Dog {

public class T {

public void test() {

System.out.println("Hello, world!");

}

}

public static void main(String[] args) {

Dog dog = new Dog();

T t = dog.new T();

t.test();

}

}

9、String类

修改时会产生新的对象,占用更多内存

StringBuffer和StringBuilder

非常相似,方法几乎完全一样,用于字符串的修改

区别:StringBuffer是线程安全的,效率低;StringBuilder是线程不安全的,效率高

10、数据类型相互转化

byte(Byte):1个字节,2^8=256,-128(2^7) ~ 0 ~ 127(2^7-1)

int(Integer): 4个字节,2^32=2^2x2^30=4x2^30=4G,-21亿(-2^31) ~ 21亿(2^31-1)

1K=2^10, 1M=2^20, 1G=2^30

字符串和数字相互转换

带格式的数字字符串转换为数字,parse

例如:

NumberFormat numberFormat = new DecimalFormat("#,###");

try {

Number number = numberFormat.parse("1,234,567");

System.out.println(number);

} catch (ParseException e) {

e.printStackTrace();

}

数字转换为带格式的字符串,format方法

String n = numberFormat.format(1234);

字符串与日期的转换

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

try {

Date date = dateFormat.parse("2018-08-01T23:00:01.234");

// 数据库字段类型是Date,使用Date的方法(比较大小,修改)

String d = dateFormat.format(new Date());

System.out.println(d);

} catch (ParseException e) {

e.printStackTrace();

}

11、异常捕捉

异常都是Throwable的子类

检查异常:需要处理,try catch或再次throw出去

运行时异常:可以不catch

错误:处理不了

方法声明包括:throws ParseException,调用时就需要处理这个异常

12、数据导入导出

数据导入:使用POI导入Excel数据到数据库https://blog.csdn.net/qq_33350186/article/details/78833889

数据导出:使用POI导出数据库的数据到excel文件,https://www.cnblogs.com/gudongcheng/p/8268909.html

相关推荐
梁诚斌9 分钟前
使用OpenSSL接口读取pem编码格式文件中的证书
开发语言·c++
瓜子三百克27 分钟前
Objective-C 路由表原理详解
开发语言·ios·objective-c
小莫分享35 分钟前
github 镜像节点
java
链上Sniper44 分钟前
智能合约状态快照技术:实现 EVM 状态的快速同步与回滚
java·大数据·linux·运维·web3·区块链·智能合约
幽蓝计划1 小时前
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
开发语言·harmonyos
伍哥的传说1 小时前
鸿蒙系统(HarmonyOS)应用开发之实现电子签名效果
开发语言·前端·华为·harmonyos·鸿蒙·鸿蒙系统
缘来是庄1 小时前
设计模式之建造者模式
java·设计模式·建造者模式
小湘西2 小时前
Apache HttpClient 的请求模型和 I/O 类型
java·http·apache
小张成长计划..2 小时前
数据结构-栈的实现
开发语言·数据结构
沃夫上校2 小时前
Feign调Post接口异常:Incomplete output stream
java·后端·微服务