package ChouXiangLei;
abstract class Person {
abstract void eat();
}
class Chinese extends Person{
@Override
void eat() {
System.out.println("chinese实现的eat");
}
}
public class Abstract {
public static void main(String[] args) {
Person p = new Chinese();
// Person p = new Person();
p.eat();
//使用Chinese类来创建抽象类的对象
}
}
package ChouXiangLei;
abstract class Person1{
public Person1() {
System.out.println("person的构造函数");
}
Person1(String name,int age){
this.name = name;
this.age = age;
}
String name;
int age;
// void introduce(){
// System.out.println("我的名字:"+name+",年龄:"+age);
// }
abstract void introduce();
abstract void eat();
}
class Chinese1 extends Person1{
String address;
Chinese1(){
super();
System.out.println("Chinese的构造函数");
}
public Chinese1(String name, int age, String address) {
super(name, age);
this.address = address;
}
@Override
void eat() {
System.out.println("吃饭");
}
@Override
void introduce() {
// super.introduce();
// System.out.println("我的名字:"+name+",年龄:"+age);
// 默认是调用父类方法,现在不是抽象方法,改成抽象方法的话就不能用super了,父类方法中也不能写sout
System.out.println("我的名字:"+name+",年龄:"+age);
//现在用的就是子类中实现的抽象方法
//抽象方法中没有具体的函数方法体,相当于只提供一个接口,**抽象就是没有具体的实体**
/
public Poker(){
cards = new Card[52];
for(int i=0;i
package pocker;
class PokerTest{
public static void main(String[] args) {
Poker poker = new Poker();
poker.shuffle(); //洗牌
Poker.Card c1 = poker.deal(0); //发第一张牌
Poker.Card c2 = poker.new Card("红心", 1); //自己创建一张牌
System.out.println(c1);
System.out.println(c2);
}
}
抽象类
abstract class
Person {
abstract void eat();
}
class Chinese extends Person{
@Override
void eat() {
System.out.println("chinese实现的eat");
}
}
public class Abstract {
public static void main(String[] args) {
Person p = new Chinese();
// Person p = new Person();
p.eat();
//使用Chinese类来创建抽象类的对象
}
}
时间函数
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class DateFormatTest {
public static void main(String[] args) {
SimpleDateFormat oldFormatter = new SimpleDateFormat("yyyy/MM/dd");
Date date1 = new Date();
System.out.println(oldFormatter.format(date1));
DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate date2 = LocalDate.now();
System.out.println(date2.format(newFormatter));
}
}
import java.time.Clock;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.spi.CalendarDataProvider;
public class DateTimeTest {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.DATE));
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));
//从上往下是年月日,时分秒
//java8后的
LocalDateTime dt = LocalDateTime.now();
System.out.println(dt.getYear());
System.out.println(dt.getMonthValue());
System.out.println(dt.getDayOfMonth());
System.out.println(dt.getHour());
System.out.println(dt.getMinute());
System.out.println(dt.getSecond());
//年月日,时分秒
System.out.println("-----------------------------------------------------");
//获得毫秒数
Calendar.getInstance().getTimeInMillis();
System.out.println(System.currentTimeMillis());
System.out.println(Clock.systemDefaultZone().millis()); //java 8
System.out.println("-----------------------------------------------------");
//获得某月的最后一天
Calendar time = Calendar.getInstance();
int last = time.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(last);
}
}
文件
import java.io.File;
public class fileList {
//列出目录下的所有文件
public static void main(String[] args) {
File f = new File("D:\360极速浏览器下载");
System.out.println(f);
for (File temp:f.listFiles()){
if (temp.isFile()){
System.out.println(temp.getName());
}
}
}
}
判断素数
public class sushu {
public static void main(String[] args) {
for (int i=1; i < 201; i++){
boolean b = false;
for (int j=2; j < i-1; j++){
int k = i%j;
if (k==0){
b = true;
}
}
if (!b){
System.out.println(i);
}
}
}
}
数组
public class Array {
public static void main(String[] args) {
int arr[][] = {{1,2,3},{2,3,4},{3,4,5}};
for (int i = 0; i < arr.length; i++){
for (int j = 0; j < arr[i].length; j++){
System.out.println(arr[i][j]);
}
}
}
}
//使用数组的.length属性代替数组长度,二维数组也可以用,
冒泡排序
import java.util.Arrays;
public class ArrayMaoPao {
public static void main(String[] args) {
int[] ns = {28,12,89,73,65,18,96,50,8,36};
System.out.println(Arrays.toString(ns));
for (int i=0; i < ns.length; i++){
for (int j=0; j < ns.length-i-1; j++){
if (ns[j] > ns[j+1]){
int tmp = ns[j];
ns[j] = ns[j+1];
ns[j+1] = tmp;
}
}
}
System.out.println(Arrays.toString(ns));
}
}
泛型
import java.util.ArrayList;
public class FanXing {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList<>();
arrayList.add("abc");
arrayList.add("bcd");
arrayList.add("cde");
//arraylist对象使用.add方法添加数据
for (int i = 0; i< arrayList.size(); i++){
//arraylist的长度对象用size,而不是length,不过两者功能相似
System.out.println(arrayList.get(i));
// 获取arraylist对象时,使用new出来的选项.get(下标)
// 一般使用一个变量来承接这个arraylist.get()对象。
// arrayList就是动态数组
/
水仙花
public class ShuiXianHua {
public static void main(String[] args) {
for (int i=100;i < 1000;i++){
int n1,n2,n3;
int k = i;
n1 = k / 100;
k %= 100;
n2 = k / 10;
k %= 10;
n3 = k;
//分别求出个十百位来,用于下面的相乘和比较
if (i == (getCube(n1)+getCube(n2)+getCube(n3))){
System.out.println(i);
}
}
}
public static int getCube(int n){
return n*n*n;
}
}
最大公约数和最小公倍数
import java.util.Scanner;
public class CommonDivisor {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个数:");
int a = in.nextInt();
System.out.println("请输入二个数:");
int b = in.nextInt();
System.out.println(a+b+"最大公约数是:"+getMaxCommon_Divisor(a,b));
System.out.println(a+b+"最小公倍数是:"+getMincommon_multiple(a,b));
}
private static int getMincommon_multiple(int a, int b) {
return (a*b) / getMaxCommon_Divisor(a,b);
}
private static int getMaxCommon_Divisor(int a, int b) {
int max = Math.max(a,b);
int min = Math.min(a,b);
int mod = max % min;
if (mod == 0){
return min;
}else {
return getMaxCommon_Divisor(mod,min);
}
}
}
线程
public class Main {
public static void main(String[] args) {
Thread t = new MyThread();
t.start(); // 启动新线程
}
}
class MyThread extends Thread {
@Override
public void run() {
System.out.println("start new thread!");
}
}
//从Thread派生出一个新的类,并重新run方法,就可以实现线程的具体操作
线程执行具体代码方法二
public class Main {
public static void main(String[] args) {
Thread t = new Thread(new MyRunnable());
t.start(); // 启动新线程
}
}
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("start new thread!");
}
}
将数组排序后存放到新数组
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int arr[] = {77,98,768,908,354,789,576};
int b[] = new int[6];
//创建一个新数组对象
Arrays.sort(arr);
for (int i = 0; i < arr.length - 1; i++){
b[i] = arr[i];
}
System.out.println(Arrays.toString(b));
}
}
StringBuffer和StringBuilder 的使用
import java.util.StringJoiner;
public class StringBuffer {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(1024);
for (int i = 0; i < 1000; i++){
sb.append(i);
sb.append(",");
}
String s = sb.toString();
// System.out.println(s);
var sb1 = sb;
System.out.println(sb1);
var sb2 = new StringBuilder(1024);
sb2.append("Mr").append("Bob!").insert(0,"hello,");
//在StringBUilder上进行链式拼接,insert 在0的位置插入这个字符串
// System.out.println(sb2);
System.out.println("sb2.toString() = " + sb2.toString());
// StringBuffer是早期StringBuilder的线程安全版本,两者作用"相同。
String[] names = {"Bob", "Alice", "Grace"};
var sj = new StringJoiner(",");
//StringJoiner是java提供的专门用来拼接字符串的类,在字符串中添加括号里的内容,调用add方法进行添加
for (String name : names){
sj.add(name);
}
// System.out.println(sj.toString());
var sj1 = String.join(",", names);
System.out.println(sj1);
//静态的jion方法,和Stringjioner方法类似
}
}
Math类
import java.util.ArrayList;
import java.util.Random;
public class MathTest {
public static void main(String[] args) {
// System.out.println(Math.abs(-100));//求绝对值 100
// System.out.println(Math.max(88, 999));//求最大值,只能在两个中比较 999
// System.out.println(Math.min(88, 999));//求最小值,只能在两个中比较 88
// System.out.println(Math.pow(2,10));//计算平方,2的10平方 1024.0
// System.out.println(Math.sqrt(16)); //开平方 4.0
// System.out.println(Math.random()); //在0-1之间生成一个随机数
// System.out.println(Math.random()*10);
Random r = new Random();
ArrayList arrayList = new ArrayList();
arrayList.add(String.valueOf(r.nextInt())); //将r.nextInt() 转换为String的值
arrayList.add(String.valueOf(r.nextInt(10)));
arrayList.add(String.valueOf(r.nextFloat()));
r.nextFloat();
r.nextDouble();
for (int i = 0; i < arrayList.size(); i++){
System.out.println(arrayList.get(i));
}
}
}



