public class Demo01 {
private static int age=10;//静态的变量
private double score=10;//非静态的变量
public static void main(String[] args) {
Demo01 demo01= new Demo01();
System.out.println(Demo01.age);
System.out.println(demo01.age);
System.out.println(demo01.score);
}
}
public class Demo01 {
{
System.out.println("匿名代码块");
}
//只执行一次
static {
System.out.println("静态代码块");
}
public Demo01() {
System.out.println("构造方法");
}
public static void main(String[] args) {
Demo01 demo01=new Demo01();
System.out.println("================");
Demo01 demo011=new Demo01();
}
}
Final修饰的类不能被继承
public final class Person() {
}
abstract修饰符可以用来修饰方法也可以修饰类:
如果修饰方法.那么该方法就是抽象方法:如果修饰类,那么该类就是抽象类。
注意:
不能new这个抽象类,只能靠子类去实现它:约束
抽象类中可以写普通的方法
抽象方法必须在抽象类中
选择实现方法
声明类的关键字是class.声明接口的关键字是interface
package 接口;
//interface 定义的关键字 接口都需要实现类
public interface UserService {
//接口中是所有定义的方法都是抽象的 public abstract
//public abstract 默认省略;写上会变灰色
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
package 接口;
public interface TimeService {
void time();
}
package 接口;
//实现了接口的类,就必须重写接口的所有的方法
//多继承 接口可以实现多继承
public class UserServiceImpl implements UserService,TimeService{
@Override
public void time() {
}
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void update(String name) {
}
@Override
public void query(String name) {
}
}
- 成员内部类位于类的成员位置,内部类可以访问外部类的成员以及方法(包括私有private)。
- 外界创建对象使用(即先创建外部类对象再创建内部类对象调用):外部类名.内部类名=外部对象.内部对象
注意: 如果成员内部类B与外部类A包含同名的成员,那么在类B中, this.v表示类B的成员, A.this.v表示类A的成员。
public class Outer {
//定义一个实例变量和一个静态变量
private int a;
private static int b;
//定义一个静态方法和一个非静态方法
public static void say(){}
public void test(){
//在外部类中调用内部类的属性和方法
Inner inner = this.new Inner();
inner.d = 1; //通过创建内部类实例来调用内部类属性
inner.number(); //通过创建内部类实例来调用内部类方法
}
//成员内部类
public class Inner{
//定义一个静态常量
static final int m = 1;
//在内部类中定义一个实例变量
int c;
public void number(){
//在内部类中调用外部类的属性和方法
a = 1;
b = 1;
say();
test(); //内部类可以直接访问外部类的所有属性和方法
}
}
}
class People{
public People() {
}
}
class Man{
public People getWoman(){
class Woman extends People{ //局部内部类
int age =0;
}
return new Woman();
}
}
public class Demo01 {
public static void main(String[] args) {
//没有名字初始化类,不用将实例保存到变量中
new Apple().eat();
new UserService() {//实现接口的类,没有名字
@Override
public void Hello() {
}
};
}
}
class Apple {
public void eat() {
System.out.println("eat");
}
}
interface UserService {
void Hello();
}