构造函数
特点:
1、函数名要与类名相同。
2、不用定义返回值类型。
3、不可以写return语句。
4、对象已建立就会调用与之对应的构造函数。
作用:用于给对象进行初始化。
静态代码块:
格式:static{执行语句}
特点:随着类的加载而执行,而且只执行一次,并且优先于主函数,用于给类进行初始化。
例如:
class Person
{ static//2、静态代码块执行
{
System.out.println("这是描述一个人的类!");
private String name=lisi;/*3、为属性开辟空间,分配内存地址 4、属性默认初始化,name=null,age=0;
5、属性的显示初始化。name=lisi,int age=22;6、这里没有构造代码块,所以这步省略*/
private int age=22;
Person(){}
Person(String name,int age)
{
this.name=name;
this.age=age;
}
}
public class Demo
{
public static void main(String[] args)
{
Person/*1、将person类加载到内存。*/ p /*8、将内存地址赋值给栈内存中的p变量*/ = new Person("zhangsan",20)/* 7、构造函数初始化。
将name的值替换为zhangsan,age的值替换为20;*/
Person p1=new Person();
}
}
对象的初始化过程:
1、将person类加载到内存。
2、静态代码块执行。
3、为属性开辟空间,分配内存地址
4、属性默认初始化。
5、属性的显示初始化。
6、构造代码块初始化。
7、构造函数初始化。
8、将内存地址赋值给栈内存中的p变量。
类只能单继承,接口可以多实现 类的继承一般继承的是事物的属性,如:姓名,年龄,性别 等,
而接口的实现 一般是实现事物的行为,如:行走,飞翔,游泳(这比较抽象,在一般项目中大部分是指对某事物的增删改查等操作)
实例 :
public interface mood {//燃烧
void fire() ;
}
public interface Door extends Mood{//椅子
void open() ;
}
public class Test implements Door{
public static void main(String[] args) {
}
public void fire() {
System.out.println("燃烧吧");
}
public void sit() {
System.out.println("正在开门");
}
}
|