门户网站设计要求,移动和生活app下载安装最新版,wordpress安装百度站长资源平台,网站专题制作流程Java导入包
import 主要用于导入在使用类前准备好了Import 关键字可以多次使用#xff0c;导入多个包Import 关键字可以多次使用#xff0c;导入多个类如果同一个包中需要大量的类#xff0c;那么可以使用通配符进行导入如果Import了不同包#xff0c;相同名称的类#x…Java导入包
import 主要用于导入在使用类前准备好了Import 关键字可以多次使用导入多个包Import 关键字可以多次使用导入多个类如果同一个包中需要大量的类那么可以使用通配符进行导入如果Import了不同包相同名称的类那么还是需要在使用时增加包名。
import java.util.Date;
import java.sql.*;public class Main {public static void main(String[] args) {java.lang.String name 测试;System.out.println(name);// 输出字符串// TODO 系统的中的 Date类Date date new Date();System.out.println(date);// 输出日期-Sun Sep 03 22:32:40 GMT08:00 2023// TODO 如果使用 sql 中也有Date需要写全java.sql.Date sqlDatenew java.sql.Date(12012);System.out.println(sqlDate);}
}继承与构造方法
使用extends关键字可以继承父类
如果要获取父类的方法或名称使用super关键字
如果父类中有构造方法在子类中需要对其实现否则报错
构造方法与C#类似方法名等于类名
public class _02_构造方法 {public static void main(String[] args) {Child2 c1 new Child2();Child2 c2 new Child2();Child2 c3 new Child2();}
}class Parent2 {String username 父类;Parent2(String name) {username name;System.out.println(父类。。。。);}
}// 实现父类的构造函数
class Child2 extends Parent2 {Child2() {super(新的子类名);System.out.println(子类。。。);}
}方法重载
一个类中不能重复声明相同方法也不能声明相同属性
在这里相同的方法指的是方法名参数列表相同和返回类型无关
如果方法名相同但是参数列表个数顺序类型不相同会认为是不同的方法只不过是名称一样
这个操作在Java和C#中被称为方法重载
构造方法也存在方法的重载重载需要传入的参数不一致
/* 方法的重载* 方法名相同-参数参数不同* */
class User {void login(String account, String password) {System.out.println(正好密码登录);}void login(int tel) {System.out.println(手机验证码登录);}void login(String wx) {System.out.println(微信登录);}
}方法重载-this
如果方法参数较多可以重复调用类中方法
判断那个函数被调用可以看名字颜色如果是高亮状态表示被调用
class User1 {User1() {this(名字);}User1(String name) {this(name, 男);}User1(String name, String sex) {System.out.println(name sex);}
}方法重载-顺序
如果传入参数是byte类型会自动选择到byte类型的方法中如果没有byte会转入到short类型中如果没有short会转入到int原因是转换成byte无法转换成charbyte8short16char16int32
public class _05_方法重载_顺序 {public static void main(String[] args) {byte b 10;User2 user2 new User2(b);}
}class User2 {User2(byte a) {System.out.println(bbb);}User2(short a) {System.out.println(sss);}User2(char a) {System.out.println(ccc);}User2(int a) {System.out.println(iii);}
}方法重载-多态
多态其实就是约束了对象的使用场景方法重载方法名相同多数列表不同(个数、顺序、类型)如果转换类型没找到会找父类如BBB的父类是AAAAAA的父类是object如果object中也没有这个类型则会报错
public class _06_方法重载_多态 {public static void main(String[] args) {AAA aaa1 new AAA();test(aaa1);// aaaAAA aaa2 new BBB();test(aaa2);// aaa}static void test(AAA aaa) {System.out.println(aaa);}static void test(BBB bbb) {System.out.println(bbb);}
}class AAA {
}class BBB extends AAA {
}方法的重写
方法的重写父类对象的方法其实主要体现通用性无法在特殊场合下使用如果子类对象需要在特殊场合下使用那么就需要重写方法逻辑这个操作在Java中称之为方法的重写这里的重写并不意味着方法被覆盖只是在当前场合不使用如果使用super关键字还可以继续访问父类中的方法方法的重写要求子类的方法方法名相同返回类型相同参数列表相同
public class _07_方法重写 {public static void main(String[] args) {Children children new Children();children.test();}
}class Parent3 {String name 父类;void test() {System.out.println(父类中....);}
}class Children extends Parent3 {String name 子类;// 方法的重写void test() {// 也可以调用父类中的方法super.test();System.out.println(子类中....);}
}小练习
一个对象使用什么方法取决于子引用变量类型一个对象使用什么属性取决于引用变量的类型一个对象的方法具体的使用是需要看具体对象的一个对象的属性具体的使用是不需要看具体的对象的属性在哪里声明在哪里使用
public class _08_方法重写_小案例 {public static void main(String[] args) {// 根据类型推测调用的是CCC的类中CCC ccc new CCC();System.out.println(ccc.sum());// 20/** 如果DDD中有sum函数* 如果将DDD转化为CCC的类型* 如果DDD中没有sum函数则会调用CCC的中函数* */CCC ddd new DDD();System.out.println(ddd.sum());// 40}
}class CCC {int i 10;int sum() {return i 10;}
}class DDD extends CCC {int i 20;int sum() {return i 20;}
}使用内部类
public class _09_内部类 {public static void main(String[] args) {// 如果调用内部类OuterClass outerClass new OuterClass();OuterClass.InnerClass innerClass outerClass.new InnerClass();}
}class OuterClass {public class InnerClass {}
}单例模式
public class _10_单例模式 {public static void main(String[] args) {}
}class User4 {private static User4 user4 null;private User4() {}// 如果user4中为空则进行赋值这样只需要调用一次就可以无限创建public static User4 getInstance() {if (user4 null) {user4 new User4();}return user4;}
}final修饰
public class _11_final不可变 {public static void main(String[] args) {final String name 不可变的名字;User5 user5 new User5(名字);System.out.println(user5.name);}
}class User5 {// public final String name 初始化名字;// 使用final修饰需要手动初始化public final String name;// 可以使用构造函数进行初始化public User5(String name) {this.name name;}// final的方法不可以被子类重写public final void test() {}// ·final可以修饰参数名public void test(final String name) {}
}抽象类
如果一个类中含有抽象方法那么这个类是抽象类如果一个类是抽象类它的方法不一定是抽象方法抽象类无法直接构建对象但是可以通过子类间接构建对象如果抽象类中有抽象方法那么子类继承抽象类需要重写抽象方法讲方法补充完整抽象方法不可以使用final同时使用,包括类名也是
public class _12_抽象类 {public static void main(String[] args) {Chinese chinese new Chinese();}
}abstract class Person {public abstract void eat();public void test() {}
}// 需要实现父类中方法-抽象类中
class Chinese extends Person {Override// 看情况是否需要重写public void eat() {}
}枚举
枚举是一个特殊的类其中包含了一组特定的对象这些对象不会发生改变一般都是用大写表示符枚举使用enum关键字使用枚举类会将对象放置在最前面那么和后面的语法需要使用分号隔开
public class _13_枚举类型 {public static void main(String[] args) {System.out.println(City.BEIJING.name);System.out.println(City.BEIJING.code);}
}enum City {BEIJING(北京, 1001),SHANGHAI(上海, 1002);City(String name, int code) {this.code code;this.name name;}public String name;public int code;
}排序
冒泡排序
public class Main {public static void main(String[] args) {int[] nums {1, 4, 6, 5, 3, 0, 2};for (int i 0; i nums.length; i) {for (int j 0; j nums.length - i - 1; j) {int num1 nums[j];int num2 nums[j 1];if (num1 num2) {nums[j] num2;nums[j 1] num1;}}}for (int num : nums) {System.out.println(num);}}
}选择排序
public class 选择排序 {public static void main(String[] atgs) {int[] nums {1, 4, 6, 5, 3, 0, 2};for (int j 0; j nums.length; j) {int maxIndex 0;for (int i 1; i nums.length - j; i) {if (nums[i] nums[maxIndex]) {maxIndex i;}}int num1 nums[nums.length - j - 1];int num2 nums[maxIndex];nums[maxIndex] num1;nums[nums.length-j - 1] num2;}for (int num : nums) {System.out.println(num);}}
}二分查找
public class _02_二分查找 {public static void main(String[] args) {int[] nums {1, 4, 6, 5, 3, 0, 2};int targetNum 4;int start 0;int end nums.length - 1;int mid 0;while (start end) {mid (start end) / 2;if (nums[mid] targetNum) break;else if (nums[mid] targetNum) {end mid - 1;} else {start mid 1;}}System.out.println(数据在 mid 位置);}
}日期类
import javax.swing.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Main {public static void main(String[] args) throws ParseException {Date date new Date();System.out.println(date);// 使用java自带日期格式化SimpleDateFormat simpleDateFormat new SimpleDateFormat(yyyy年MM月dd日 HH:mm:ss.SSS);System.out.println(simpleDateFormat.format(date));// 将字符串转为日期String dateString 2023年09月04日 14:43:41.755;// 格式必须符合 simpleDateFormat 格式Date parseString simpleDateFormat.parse(dateString);System.out.println(parseString);// 根据时间构成时间对象date.setTime(System.currentTimeMillis());// 获取时间戳date.getTime();}
}日历类
import java.util.Calendar;
import java.util.Date;public class _01_日历类 {public static void main(String[] args) {Calendar instance Calendar.getInstance();System.out.println(instance);System.out.println(instance.get(Calendar.YEAR));System.out.println(instance.get(Calendar.MONTH));// 获取月份需要1System.out.println(instance.get(Calendar.DATE));instance.setTime(new Date());instance.add(Calendar.YEAR, 1);// 去上一年instance.add(Calendar.YEAR, -1);// 去年}
}