构造方法
非常极其特别的重要。new 方法开辟出堆中空间后,被调用来初始化对象。 与普通方法不一样。
初始化类中属性的。
1 在命名上构造方法的方法名。必须与类名相同,完全一致。
2 构造方法无返回值类型。 public Hello
面向对象的特点:
继承 封装 多态 抽象 如过就三个,就把抽象去掉;
1继承 方法的重载,用相同的方法名和不同的参数列表,做相似的事。重载构造方法。
不同的参数列表: 1 类型 2 顺序 3 数量
2封装: 有些属性私有的,不给别人看。
3抽象:
4多态: 一个事物多种形态
变量的作用域及初始化生命周期
作用域:变量声明开始,一直到变量所在的大括号的结束
初始化: 1 局部变量 :不会被默认初始化,、只有手动初始化后 ,才能使用
2 类体中的变量: 默认初始化为不同程度的0。
long = 0L char = '\u0000' boolear = false
int 0 float = 0.0f shot = 0;byte = 0 double = 0.0
Sting是一个类 。
String Str1 = "ABC",String Str2 = "d" Str1 = Str1+Str2; 先对 Str1 扩容,再拼接
String s1 = "hello"; string s2 = new string("hello");不管之前有没有,就在、重新存在一个
equals 相似 相等 返回是不是一个对象
String s1 = "hello"; String s2 = new String ("hello"); s1 s2
类在声明时,系统会默认自动生成一个无参构造方法。
若手动添加一个有构造方法,则系统不再生成无参 Constractur; 注: 好习惯 写类的时候,手动添加一个无参C
封装:①私有化
②访问控制 本类 同包类 非同包子类 非同包其它类
㈠共有 public yes yes yes yes
㈡保护 protected yes yes yes no
㈢默认 yes yes bo no
㈣私有 yes no no no
集成
继承 多态
类的继承
/*
* 在存在继承时,
* 1 属性和方法都会被继承到子类中
* 2 静态的类变量方法,回被共享到子类 共享 就是 你没有 可以让你用
* 3 子类的构造方法被在调用时 会在一行调用 父类的无参构造方法
* 4 Java 不支持多重继承,一个类只能有一个父亲,但可以有多个子类
*/
//子类继承父类,会继承父类中 所有的属性和方法
//继承可以提高代码的重用度
/**
* static 静态的 共享的
* 被static修饰的变量和方法可以被类的所有变量共享
* 变量,
* 在类体中声明的变量可以被static修饰,
* 但是局部变量不行
*
* 方法,
* static可以修饰方法,表示该方法属于类
* 语句块
* 在方法或类中出现的一对大括号所表示的区域是语句块
* static只能在修饰类中的语句块 静态语句块
*
* 类
* static只能且只能修饰内部类
*/
先加载父类静态语句块
在加载子类静态语句块
加载父类非静态语句块
加载父类构造方法
加载子类非静态语句块
子类子类构造方法
静态的方法不能直接调用非静态的方法和属性
要调用必须new ]
使用向上造型时,使用父类的引用变量
去引用子类的实例对象
引用调用对象的属性各方法时,只能调用引用变量类型以上的属性和方法