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

相关推荐
会飞的架狗师10 分钟前
【Spring Cloud Gateway】Nacos整合遇坑记:503 Service Unavailable
java·开发语言
易只轻松熊1 小时前
C++(21):fstream的读取和写入
开发语言·c++
重生之后端学习1 小时前
02-前端Web开发(JS+Vue+Ajax)
java·开发语言·前端·javascript·vue.js
zimoyin1 小时前
kotlin Android AccessibilityService 无障碍入门
android·开发语言·kotlin
繁依Fanyi2 小时前
用 CodeBuddy 实现「IdeaSpark 每日灵感卡」:一场 UI 与灵感的极简之旅
开发语言·前端·游戏·ui·编辑器·codebuddy首席试玩官
duapple6 小时前
Golang基于反射的ioctl实现
开发语言·后端·golang
Dxy12393102166 小时前
Python 条件语句详解
开发语言·python
字节源流7 小时前
关于maven的依赖下不下来的问题
java·maven
pjx9878 小时前
服务间的“握手”:OpenFeign声明式调用与客户端负载均衡
java·运维·spring·负载均衡
prinrf('千寻)8 小时前
MyBatis-Plus 的 updateById 方法不更新 null 值属性的问题
java·开发语言·mybatis