周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周天 |
---|---|---|---|---|---|---|
堆:new出来的东西(变量、对象)都放在堆中,堆中数据都有一个16进制的地址值,并且有一个默认值。
寄存器:与CPU有关。
一个简单数组实例:
一个简单对象实例:
隐藏一些细节信息,对于外界不可见,体现:方法与关键字private,同时对一些属性进行合理性的保护。
针对Private修饰的成员变量,应该定义一对Get对Set方法进行访问。其中对于Boolean型,get方法应写成isXxx形式
简单实例如下:
class person{
private int age;
public void Setage(int age){
this.age = age;
}
public void Getage(){
return age;
}
}
编写一个全参构造方法。
简单实例如下:
class person{
private int age;
public person(){}
public person(int age){
this.age = age;
}
}
Arrylist<>为大小可变的数组,<>中代表的是泛型,只能是引用类型,不能是基本类型(byte、short、int、long、float、double、char、boolean),如有必要,可以使用包装类(Byte、Short、Integer、Long、Float、Double、Character、Boolean)。 从JDK1.5开始,支持自动装箱与拆箱。
常用方法:
public E get (int dex) //参数是索引编号
public boolean add (E e) //参数是泛型
public E remove (int dex) //参数是泛型
public int size ()
简单例子:
public class Main {
public static void main(String[] args) {
ArrayList<String > qhb1653 = new ArrayList<>();
//向全华班中添加人员
boolean success = qhb1653.add("曹大学姐");
qhb1653.add("李门头");
qhb1653.add("孙WJ");
qhb1653.add("勺王申");
//打印集合中的数据
System.out.println("组成人员:"+qhb1653);
//获取集合数据
String leader = qhb1653.get(1);
System.out.println("头头是"+leader);
//删除GK No.1
String nb =qhb1653.remove(2);
System.out.println("被删了的人是:"+nb);
//获取集合长度
int num = qhb1653.size();
System.out.println("全华班的人数为:"+(num+1));
}
}
字符串的内容永不改变,可以共享使用,效果相当于char[]型字符数组,但底层原理是byte[]字节数组。
常见四种构造方法:
public String ()
public String (char[] array)
public String (byte[] array)
String str = " "
PS:直接双引号的字符串,在字符串常量池中。对于字符串这种引用类型来说,==比较的是地址值,内容的比较需要用equals。
String str1 = "ABC";
char [] charArray = {'A','B,'C'};
String str2 = new String (charArray);
System.out.println(str1.equals(str2);
常用方法:
public int length()
public String concat (String str)
public char charAt (int index)
public int indexOf(String str)
public String substring(int index)
public String substring(int begin,int end)
public String replace(old String , new String)
简单例子:
Static关键字:如果一个成员变量/方法使用了static关键字,这个变量/方法不再属于对象,而是属于类,多个对象共享,静态方法可以直接使用类名调用。
简单实例:
继承主要解决的是共性抽取,子类可以有父类的内容,还可以拥有自己专有的内容。
格式:public class A extends B {}
访问重名成员变量特点:
创建子类对象,访问成员方法时,对象是谁,优先用谁,没有向上找。
重写:@Overri 方法名称与参数列表都一样。
子类构造方法中有一个默认的super()调用,先调用父类构造,再执行子类构造。
super 与 this内存图
Java继承的特点:
一个子类的直接父类只能有唯一一个。
父类可以多级继承,有多个子类。
抽象类:抽象方法所在的类必须是抽象类。
使用方法:
简单实例:
public abstract class LaoBa{
public abstract void eat();
}
public class sxz extends LaoBa{
public void eat(){
System.out.println("奥利给,干了兄弟们");
}
}
接口是多个类的公共规范,一种引用数据类型,最重要的内容就是其中的抽象方法。实现类必须覆盖重写所有抽象方法。
格式如下:
public interface 接口名称 {
//接口内容
}
public class 实现类名 implements 接口名{
// 实现接口内容
}
接口当中的抽象方法,修饰符默认是两个固定的关键字:[public] [abstract] 返回值 方法名 (参数列表) {方法体}
。
默认方法可以解决接口升级的问题:[public] [default] 返回值 方法名 (参数列表) {方法体}
静态方法:public static 方法名 (参数列表) {方法体}
私有方法:抽取共用方法,解决两个默认方法/静态方法之间重复代码的问题。private [static] 返回值 方法名 (参数列表) {方法体}
jdk9之后只有接口本身才能用,不能被实现类调用。
接口当中的常量,必须进行明确的赋值,并且常量名完全大写默认用 [public] [static] [final] 返回值 方法名 (参数列表) {方法体}
修饰。
接口不能有构造方法,也没有静态代码块。
十、多态(这一部分目前接触的比较少)
多态分为编译时多态与运行时多态,第一个通过方法重载实现,第二个通过方法覆盖。
通过类名访问成员变量时,看等号左边。
通过成员方法访问成员变量,看该方法属于谁。
口诀:访问变量都看左边,方法运行时看右边。
原文:https://www.cnblogs.com/Gst-Paul/p/12445918.html