hello

执行 javac Hello.java 生成 Hello.class

// Hello 要与文件名相同
public class Hello{
// 程序执行的起点
public static void main(String[] args){
System.out.print("Hello world");
}
}

数据类型

1.基本类型
整数型 byte short int long
浮点型float double
字符 char
布尔boolean
2.引用数据类型
字符串 数组 类 接口

关键字/标识符/常量

关键字

标识符
不使用数字开头

常量
字符串常量 双引号 'aaaaa'
整数常量
浮点数常量
字符常量 单引号引起来的 只能有一个 'a' 'b'
布尔常量 true false
空常量 null

变量

  • 变量名称不能重复
  • float和long类型变量 F L 不能丢
  • byte short 数值不能超过范围
  • 没有赋值的变量不能直接使用
  • 变量使用不能超过作用域范围
 public class Bianliang{
public static void main(String[] args) {
int num1,num2;
// int num1=1,num2=2;
num1 =10;
num2 = num1 +10;
System.out.println(num2);

System.out.println("-----------");

byte num3 = 30;
System.out.println(num3);
short num4 = 10;
System.out.println(num4);
long num5 = 20000;
System.out.println(num5);

float num6 = 2.5F;
System.out.println(num6);

double num7 = 2.5F;
System.out.println(num7);

char zf1 = 'A';
System.out.println(zf1);

boolean var1 =true;
System.out.println(var1);
}
}

类型

自动转换

  • 从小->大

强制转换

int num=(int)100L;

(要转换的类型)范围大的数据

  • 注意:
    强制使用不推荐使用

运算符

加减乘除取余
+
-
*
/
%

自增自减
++ --

赋值运算符
=
+=
-=
*=
/=
%=

比较运算符
==
<
>
<=
> =
! =

逻辑运算符
&& 与
|| 或
! 非

三元运算符
数据类型 变量名称=条件判断?表达式a:表达式b

方法

public static void 方法名称(){

}

public class Fangfa{
public static void main(String[] args) {
//调用方法
farmer();
}
// 定义方法
public static void farmer(){
System.out.println("111");
System.out.println("222");
System.out.println("333");
}
public static void coo(){
System.out.println("cook");
System.out.println("321");
System.out.println("123");
}
}

流程(if/switch/for/while)

if(表达式){
}else{
}

if(表达式){
}else if(表达式){
}else{
}

switch(表达式){
case 常量值:
语句体;
break;
default:
语句体;
break;
}

for(;;){
}

while(条件判断){
}

do{
}while(条件判断);

方法调用

方法调用:

  1. 单独调用
  2. 打印调用
  3. 赋值调用

重载

    名称相同,
1. 参数列表不同
2. 参数类型不同

public class Fangfa0111{
public static void main(String[] args) {
int a=1;
int b=2;
System.out.println("-----");
System.out.println(summ(a, b));//两数相加
System.out.println(sum_lian(100));//1-某数的之和
get_num_hello(5);
}

public static int summ(int a,int b){
int c = a+b;
return c;
}
public static int sum_lian(int a){
int c=0;
for(int i=0;i<=a;i++){
c = c+i;
}
return c;
}
public static void get_num_hello(int a){
for(int i=1;i<=a;i++){
System.out.println("Hello");//1-某数的之和
}
}


// 重载(名称相同,参数列表不同)
public static int cz_sum(int a,int b){
int c = a+b;
return c;
}
public static int cz_sum(int a,int b,int c){
int dd = a+b+c;
return dd;
}
public static int cz_sum(int a,int b,int c,int d){
int dd = a+b+c+d;
return dd;
}

}

数组arr

  1. 是一种引用数据类型
  2. 数组中的多个数据,类型必须统一
  3. 数组长度不可改变

初始化

  1. 动态初始化(指定长度)
  2. 静态初始化(指定内容)

数据类型[] 数组名称 = new 数据类型[数据长度]

public class Arr{
public static void main(String[] args) {

// 动态初始化
int[] arrayA = new int[300];
double[] arrayB = new double[10];
String[] arrayC = new String[5];
//静态初始化
int[] arrayD = new int[] {1,2,4,5,6,7};
int[] arrayE = {1,2,4,5,6,7};
//读取
System.out.println(arrayE[1]);
//赋值
arrayA[1] = 50;
System.out.println(arrayA[5]);//默认0 '' 0.0
System.out.println(arrayA[1]);//50
//获取长度
System.out.println(arrayD.length);
//数组遍历
for(int i=0;i<=arrayD.length;i++){
System.out.println(arrayD[i]);
}
//数组的最值
//数组反转(使用第三方)
}
public static void get_sum(int[] arrayA){

}
}

object

导入包

import 包名称.类名称

如果同目录下不用写

Student stu = new Student()

stu.a

stu.a()


public class Obj{
public static void main(String[] args) {
int[] arrayD = new int[] {1,2,4,5,6,7};
// System.out.println(arrayD.toString());
Student stu = new Student();
stu.aa();
System.out.println(stu.bb);
}
}

random

random 随机数

int r = rand.nextInt();随机生成正负

int r2 = rand.nextInt(10);//0-9

public class Random1{
public static void main(String[] args) {

// 生成随机数()
Random rand = new Random();
int r = rand.nextInt();
System.out.println("随机数是:"+r);
int r2 = rand.nextInt(10);
System.out.println("随机数是:"+r2);//0-9
}
}

scanner

键盘输入

1.导包

import

2.创建

3.使用

import java.util.Scanner;
public class Scann{
public static void main(String[] args) {
String str = "dsds";

//创建
Scanner sc = new Scanner(System.in);

//使用
//获取键盘输入数据
// int num = sc.nextInt();
// System.out.println(num);


//求两个数的和
System.out.print("请输入num1:");
int num1 = sc.nextInt();
System.out.print("请输入num2:");
int num2 = sc.nextInt();
int c = num1+num2;
System.out.println(c);
}
}

arraylist idea

import zf.com.Student;
import java.util.ArrayList;
/**
arraylist 使用
1. 自定义学生类
2. 创建集合 ,用来存学生对象
3. 根据类创建4个学生对象
4.将4个学生对象加到 add
5.遍历集合 for size get
*/
public class Arraylist_demo {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<Student> ();

Student one = new Student("a",20);
Student two = new Student("b",22);
Student three = new Student("c",24);
Student four = new Student("d",25);

list.add(one);
list.add(two);
list.add(three);
list.add(four);

for (int i = 0; i < list.size(); i++){

Student stu = list.get(i);
System.out.println("姓名:"+stu.getName()+",年龄:"+stu.getAge());
}
}
}


import java.util.ArrayList;

/**
Arraylist

System.out.println(list);//[aa, bb, cc]
printList(list);//{aa@bb@cc}

*/

public class Arraylist_demo1 {
public static void main(String[] args) {

ArrayList<String> list = new ArrayList<String> ();

list.add("aa");
list.add("bb");
list.add("cc");
System.out.println(list);//[aa, bb, cc]

printList(list);//{aa@bb@cc}
}
/**
定义方法三要素
1.返回值名称
2.方法名称
参数列表
*/
public static void printList(ArrayList<String> list){
System.out.print("{");
for (int i = 0; i < list.size(); i++){
String name = list.get(i);
if(i==list.size()-1){
System.out.print(name);
System.out.print("}");
break;
}
System.out.print(name+"@");
}
}

}


import java.util.Random;
import java.util.ArrayList;
/**
一个大集合存入20个随机数字,筛选其中偶数元素,
放入小集合中

*/

public class Arraylist_demo2 {
public static void main(String[] args) {

ArrayList<Integer> list = new ArrayList<Integer> ();
Random r = new Random();
for (int i = 0; i < 20; i++) {
list.add(r.nextInt(100+1));
}

ArrayList<Integer> smallList = getsmalllist(list);
System.out.println(smallList);
System.out.println(smallList.size());

}

/**
* 接受大集合,返回小集合
*/
public static ArrayList<Integer> getsmalllist(ArrayList<Integer> biglist){
ArrayList<Integer> smalllist = new ArrayList<Integer> ();
for (int i = 0; i < biglist.size(); i++) {
int num = biglist.get(i);
if (num %2==0){
smalllist.add(num);
}
}

return smalllist;
}
}

import zf.com.Person;

import java.util.ArrayList;

/**
定义一个数组,用来存储3个Person对象

数组缺点:一旦创建,长度不可改变

ArrayList 集合
ArrayList<Integer> list = new ArrayList<Integer> ();
<> 泛型 定义数据的类型
长度可随意改变
ArrayList 打印,直接是值
向集合中加数据 .add
获取数据 .get
删除 .remove
获取长度 .size()

*/
public class Arraylist_person {
public static void main(String[] args) {
Person[] array = new Person[3];

Person one = new Person("'迪丽热巴'",18);
Person two = new Person("'鹿晗'",23);
Person three = new Person("'陈赫'",22);

array[0] = one;
array[1] = two;
array[2] = three;

System.out.println(array[0]);//地址值
System.out.println(array[1]);
System.out.println(array[2]);

System.out.println(array[0].getName());//'迪丽热巴'

ArrayList<String> list2 = new ArrayList<> ();
list2.add("aa");
list2.add("bb");
list2.add("cc");
System.out.println(list2);
}
}

import java.util.Scanner;

/**
输入一个字符串,统计各种字符串出现的次数
1. 输入Scanner
2.键盘输入的字符串 String str = sc.next()
3.定义四个变量,用来代表各种字符穿心的次数
4.对字符串一个个进行检查 String->char[] 方法: toCharArray()
5.遍历char[] 进行判断
6.打印出现的次数
*/
public class Scanner_test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串");
String input = sc.next();
int dx = 0;
int xx = 0;
int sz = 0;
int qt = 0;

char[] charArray= input.toCharArray();
for (int i = 0; i <charArray.length; i++ ){
char c =charArray[i];
if ('A'<=c && c<='Z' ){
dx++;
}else if ('a'<=c && c<='z'){
xx++;
}else if ('0'<=c && c<='9'){
sz++;
}else {
qt++;
}
}
System.out.println("大写字母有:"+dx);
System.out.println("小写字母有:"+xx);
System.out.println("数字有:"+sz);
System.out.println("其他有:"+qt);

}


}

static

import zf.com.Static_t;

import java.util.Arrays;

/**
* Arrays工具类
Arrays.sort(arr1); 排序
toString(数组) 数组->字符
sort 排序 (小到大)

*/
public class Static_demo {
public static void main(String[] args) {
Static_t a = new Static_t();
Static_t b = new Static_t();

String str = "sdijsncdkncksdmco324";
char[] arr1 = str.toCharArray();
Arrays.sort(arr1);
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
}

string

/**
String字符串类
equals 比较
equalsIgnoreCase 比较 忽略大小写

length 长度
concat 拼接字符串相当于+

charAt 获取指定索引位置的单字符
indexof 字符串首次出现的位置
substring 截取

tocharArray() 字符串改为字节数组
getBytes() 当前字符串底层的字节数组
replace 替换

split 切割 字符串->数组
数组->字符串

*/

public class String_test {
public static void main(String[] args) {

String a = "Hello";
String b = "Hello";
String c = "hello";
String d = "hello,asasakndsknd,k4ji2o3n435no4n532o532";
System.out.println(a.equals(b));//true
System.out.println(a.equals(c));//false
System.out.println(a.equalsIgnoreCase(c));//true 忽略大小写
System.out.println(a.length());

System.out.println(a.concat("'aaaa'"));//Hello'aaaa'
System.out.println(a.charAt(2));//l
System.out.println(a.indexOf("o"));//4
System.out.println(d.substring(5));// asasakndskndk4ji2o3n435no4n532o532
System.out.println(d.substring(5,10));// asas

// cahr[] aa = d.toCharArray();
String dd = d.replace("hello","mc");
System.out.println(dd);

System.out.println("-----");
String[] arr1 = d.split(",");
System.out.println(arr1.length);
System.out.println(arr1[1]);
}
}

面向对象

面向对象

封装/继承/多态

继承

  1. 单继承
  2. 多级继承

public class Demo {
public static void main(String[] args) {
Zi zi = new Zi();
zi.show();
zi.method();
}
}

继承

public class Zi  extends Fu{
int num = 20;

//重写方法
@Override
public void method() {
super.method();//调用父类的
System.out.println("子类方法");
}

public void show() {
int num = 30;
System.out.println(num);//30 当前
System.out.println(this.num);//20 子类的
System.out.println(super.num);//10 父类的
}

}

Math

Math.abs(double num) 取绝对值

.ceil 向上取整

.floor 向下取整(抹零)

.round 四舍五入

PI 圆周率

public class MathTest {
public static void main(String[] args) {


double min =-10.8;
double max =5.9;
for (int i = (int) min ; i < max; i++) {
int abs = Math.abs(i);
if (abs > 6 || abs < 2.1){
System.out.println(i);
}
}


}
}

抽象方法

抽象方法

abstract

抽象类和方法的使用

  1. 不能直接创建new抽象对象
  2. 必须用一个子类继承父类抽象父类
    3.子类覆盖重写父类当中的抽象方法 去掉abstract关键字
  3. 创建子类对象进行使用

final 最后赋值

public abstract class Chouxiang {

//抽象方法
public abstract void eat();


}

public > protected > default > private