基础

1.区别于python的保留字false,true,null
2.数组定义:

int maxn = 100;
int[] numbers = new int[maxn];

3.java可以自增,python是不可以的。
4.数组的长度:注意没有小括号

numbers.length;

5.直接初始化数组

int [] scores ={99,123,23,1,4,5,66};
int[] b = a;

数组名只是数组的管理者,当制定给新数组时,表示两者都可以管理,所以一者改变,另一者取出的值也会改变
7.java定义变量后,编译器会自动初始化为0或者false
8.for-each循环:
k是data中每个位置的值

int [] data = {100,90,33,22,67};
for(each k: data){
System.out.println(k);
}

9.二维数组

int[][] data = new int[3][5];
int[][] score ={{1,2,3,4},{2,3,4},};

10.字符串

String str = "hello";
String[] s = {"AAA","BBB","ccc"};

11.字符类型

char c = 'A';
char d =(char)(c + 'a' - 'A');

12.包裹类型
Boolean
Interger
Character
Double

Character.isDigit('a');
Character.isLowerCase('I')
Character.toLowerCase('T')

13.String
用加号可以连接字符串,当加号的另一边不是字符串时,系统会自动的将另一边转换为字符串类型

String s = new String('a string');
s.equals("bye");

字符串常用的函数

in.next()读入一个单词
in.nextLine()读入一整行
s.equals()来判断两个字符串的内容是否相同
s.length()获得字符串的长度
s.charAt(index)访问index的位置
s.substring(index)字串从index开始截取
s.substring(2,4)24但是不含4
s.indexOf(4)没找到则返回-1
s.trim()去除字符串两边空格
s.replace(c1,c2)用c1替换c2的内容
s.toLowerCase()把字符串改为小写

14.构造函数可以重载,但是没有返回值,函数名称必须与类名一样,如果没有写显示的构造函数,编译器会自动产生一个空的无形参构造函数。Java没有析构函数。
15.对象赋值时reference赋值(两者同为一个目标的管理者),而基本类型是直接值拷贝。
16.每个变量都是有生命周期的,它只能存储在离它最近的一对花括号中。
17.JVM自动回收,垃圾回收器(Garbage collector)。
18.每个子类的构造函数的第一句话都默认调用父类的无参构造函数super()。
19.信息隐藏

单根继承

class Human{
	int height;
	int weight;
	public void eat() {
		System.out.println("breadth of mind!");
	}
}

public class man extends Human{
	public void plough() { //耕田 
	}
	public static void main(String[] args) {
		man m = new man();
		m.eat();
	}
}

Java只能单根继承:每个类智能继承一个类。
如果不写extends,Java都是默认继承java.lang.Object类。
子类继承父类所有的属性和方法,但不能直接访问private成员。
this代替构造函数,同一个类中的成员和方法。this(2,3),this.number,this.add(3,4)
信息隐藏:private中的set和get

抽象类

子类可以继承抽象类,但是一定要实现父类们所有abstract的方法,如果不能完全实现,那么子类也必须被定义为抽象类。

接口

如果类的所有方法都没有实现,那么这个类就算是接口interface
类只可以继承(extends)一个类,但是可以实现多个接口,继承和实现可以同时进行。
extends必须写在implements前面
接口可以继承多个接口extends A,B{ }

public interface Animal{ }