面向对象
访问属性方法静态属性方法
面向对象与面向过程的区别。
大家都知道面向过程,程序员是执行者;面向对象,程序员是指挥者。
就是说从一开始的去做到后来的让别人去做的区别。
*面向过程例:
public static void main(String[] args) {
int a = 10;
a = a + 10;
System.out.println(a);
}
*面向对象例:
public static void main(String[] args) {
int a = 10;
a=Addition(a);
System.out.println(a);`这里写代码片`
}
public static int Addition(int num){
return num+10;
}
虽然上面两个代码块的运行结果相同但是下面的代码块就是以一个指挥者(面向对象)的思想操作的。
切记:
public static void main(String[] args) {
int a = 10;
Addition(a);
System.out.println(a);
}
public static int Addition(int num){
return num+10;
}
基本数据类型都是在栈内存中加载、执行的。加载Addition方法,只是给num加了10,如果不给a赋值,输出的a不会变。
类(class)和对象
类是抽象的对象是具体的,就像制作月饼的过程,一个月饼模子可以制作很多月饼,模子是class月饼是对象。
是一个从特殊到一般(抽象类),由一般到特殊(class—>对象)的过程。
创建对象的语法
- 类型 对象名 = new 类型();
- 对象名.属性
- 对象名.方法()
例:
public class Student {
String name; //姓名
int age; //年龄
int num; //学号
public static void main(String[] args) {
Student student = new Student();
student.name="张三";
student.age=10;
student.num=100001;
System.out.println(student);
}
@Override
public String toString() {
// TODO 自动生成的方法存根
return "姓名"+name+", 年龄"+age+", 学号"+num;
}
}
static
- static修饰的成员变量属于类变量,随着类的加载而加载
- static修饰方法是类方法,类名.方法名()调用。也可以通过对象.方法名(不推荐),随着类的加载而加载。
- static{}静态代码块,随着类的加载而执行
例:
public class DemoStatic {
static int Class=10010;
static String name;
static{
System.out.println("不用调用也执行了---");
}
public static void show(){
System.out.println("+++需要调用才执行");
}
public static void main(String[] args) {
name="李四";
System.out.println(name+"的班级是"+DemoStatic.Class);
DemoStatic.show();
}
}
静态方法只能访问静态方法和静态成员变量(类变量),成员方法可以访问静态方法和静态属性,如果属性是每个对象特有的比如名字,就抽象成成员属性,如果属性是每个对象共有的,就抽象成静态的。
————SpringAndI