代码块的种类:
1、局部代码块
位置:在方法中 或 在方法的声明中
作用:限制了局部变量的声明周期(作用域问题)
2、构造代码块
位置:在类中 成员方法以外
调用顺序:当系统调用构造方法之前会先调用构造代码块
作用:如果如果每个对象都在相同的方法区执行,可以在构造代码块中调用
3、静态代码块(用static来修饰)
位置:在类中 成员方法外
作用:只加载一次并随着类的加载而加载
应用场景:可以用来加载驱动(JDBC数据库的连接)
4、同步代码块
public class Demo01 {
static {
System.out.println(“我是Demo1的静态代码块”);
}
public static void main(String[] args) {
//局部代码块(main函数中的大括号)
// {
// int num = 10;
// System.out.println(num);
// }
//用无参数构造 创建一个 person
//用有参数构造 创建一个person
//都调用sayhi方法
Person person = new Person();
person.sayhi();
Person person1 = new Person("张三",18);
person1.sayhi();
Person person2 = new Person();
}
}
class Person{
String name;
int age;
//
public Person() {
System.out.println("我是无参构造方法");
}
public Person(String name, int age) {
this.name = name;
this.age = age;
System.out.println("我是有参数的构造方法");
}
public void sayhi(){
System.out.println(name + "----" + age);
}
public void cYF(){
System.out.println("穿衣服");
}
//构造代码块
{
this.cYF();
System.out.println("我是构造代码块");
}
//静态代码块
static {
System.out.println("我是静态代码块");
}
}
继承
继承的特点
1、减少重复的代码
2、减少你的工作量
3、可以把类中相同的代码抽取出来 写成一个父类
继承定义:连接了类与类之间的关系(父子关系)
继承关键字、格式
继承关键字为:extends
class—-子类名称—- extends—-父类名称 {
}
例题:
创建一个 手机类 和 一个电脑类
有color、size并且有介绍自己的方法
public class Demo02 {
public static void main(String[] args) {
El phone = new Computer();
Computer.color = "白色";
Computer.size = 21;
Computer.sayhi();
}
}
class El{
String color;
int size;
public void sayhi() {
System.out.println(color + "----" + size);
}
}
class Computer extends El{
}
class phone extends El{
}
java中的继承
1、java中只允许单继承 不允许多继承(可以通过接口来实现多继承效果)
c++语言等其他语言允许多继承)
2、java中 允许 多层继承 (属性和方法会传递继承)
如果我想得到类中 共有的方法和属性 使用哪个类?使用继承链最顶端的类
如果我想得到类中 特有的方法和属性 使用哪个类?使用最末端的类
如果一个类没写继承哪个类 实际上是继承的系统的 Object类
Object类 是java中 最顶端的类(基类)
public class Demo03 {
public static void main(String[] args) {
DemoC c = new DemoC();
c.name = "我是c";
c.sayhi();
}
}
class DemoA extends Object{
String name;
int age;
public void sayhi() {
System.out.println(name);
}
}
class DemoB extends DemoA{
}
class DemoC extends DemoB{
}