1、类:
变量:
方法:
2、访问:
a、static:静态:加了static就是静态; 静态变量/静态方法
非静态:不加static
静态和非静态区别:
静态的只能访问静态的,非静态都可以访问
b、全局和局部:局部可以访问全局,但是局部不能访问局部,全局不能访问局部
全局:是属于类的
局部:属于方法
c、
总结访问:
本类:
访问方式:
直接访问:本类
使用类名:只适用静态
创建对象:用于解决跨类(静态和非静态问题)
类名 对象名 = new 类名();
访问前注意点/能不能访问:
静态和非静态:静态的只能访问静态的,非静态都可以访问
静态是属于类的,局部不可以有静态
静态的可以用类名来访问
例子:
//使用类名访问静态
System.out.println(Test2.i1);
全局和局部:局部可以访问全局,但是局部不能访问局部,全局不能访问局部
全局:是属于类的
局部:属于方法
跨类:
访问前注意点:
访问修饰符:
public 同一个项目
protected 同包
默认不写 同包
private 本类
全局和局部
静态和非静态
如何访问:
使用类名:只能静态
创建对象
本类访问案例:
//本类 静态 全局/局部
//变量
static int i1 = 100;
static int i2 = 200;
int i3 = 300;
int i4 = 400;
//方法
public static void f1(){
int a = 100;
//1、静态方法访问静态变量/静态方法
System.out.println(i1);
System.out.println(i2);
//2、静态访问非静态:静态无法访问非静态
}
//5、全局访问局部 不允许
int x = a+1;
public static void f2(){}
public void f3(){
//6、局部访问局部 不允许
System.out.println(a);
//7、局部访问全局
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
//3、非静态访问静态变量/方法
System.out.println(i1);
System.out.println(i2);
f1();Test01.f1();//两种访问方法
System.out.println(a);
//4、非静态访问非静态变量/方法
System.out.println(i3);
System.out.println(i4);
f4();
}
public void f4(){}
访问变量/方法:
是本类还是跨类?
本类:
考虑的点:静态 全局
方法:直接访问、使用类名、创建对象
跨类:
考虑的点:访问修饰符(跨包必须使用public) 静态 全局
方法:使用类名、创建对象
面试题:
static有什么特点?
静态的只能访问静态的,非静态都可以访问
静态是属于类的,局部不可以有静态
静态的可以用类名来访问
在对象面前没有静态一说
访问修饰必考
3、面向对象(面向类编程):专门的人干专门的事
面向对象总结:
a、类是一个模板
b、对象是类里面一个个体
对象:
对象的理解:
a、类看做一个模板,对象只是类的一个体,个体拥有独立的特征
b、在跨类访问变量和方法时,需要用到对象访问类里面的属性和方法
创建对象:
例子:
//创建Person类对象
Person p1 = new Person();
使用对象:
访问变量:对象名.属性名
p1.name;
访问方法:对象名.方法名();
p1.eat();
使用对象的场景:
访问
存储数据:相当于变量(引用数据类型)
例子:
Person[] ps = new Person[6];//null
//将对象放入数组
ps[0] = p1;
ps[1] = p2;
//使用普通for
for(int i = 0;i<ps.length;i++){
if(ps[i]!=null){
System.out.println("年龄:"+ps[i].age+"姓名:"+ps[i].name);
}
}
传值:
例子:
public void getPerson(Person p,int i){
System.out.println(p.age);
p.sleep();
}
今日总结:
1、访问
静态和非静态
全局和局部
访问修饰符
跨类
跨包
2、面向对象:
创建对象
使用对象访问属性
使用对象访问方法