面向过程:我打算列个计划表一步一步来
面向对象:我喜欢先分析分类,把复杂的问题简单化
面向对象的本质就是:以类的方式组织代码,以对象的方式组织数据
类&对象:对象是类的具体事物,类是对象的抽象概念
类即是对象的模板.....
定义一个方法:
public class Demo4 { public static void main(String[] args){ } /* 修饰符 返回值类型 方法名(...){ //代码体 return 执行结果; } */ //定义一个add方法 public static int add(int a,int b){ return a+b;//return 代表结束 } }
区分静态方法:加入static为静态方法反之为非静态方法
public class Demo4 { public static void main(String[] args){ //调用静态方法 say2(); //调用非静态方法 先要用new创建类的对象 通过对象调用 //say1(); error!!! Demo4 d4 = new Demo4(); d4.say1(); //d4.say2(); error!!! } //实例化后才存在 public void say1(){ System.out.println("Static"); } //和类一起加载 public static void say2(){ System.out.println("No static"); } public static void say3(){ say1(); //error!!!! } }
值传递:传递后是传递参数的复制版本
引用传递:传递后可以通过传递的参数修改传递的变量
//值传递 public class Demo4 { public static void main(String[] args){ int b = 5; change(b); System.out.println(b); //5 } public static void change(int a){ a = 10; } }
//引用传递 public class Demo4 { public static void main(String[] args){ Student student = new Student(); System.out.println(student.name); //Null change(student); System.out.println(student.name); //Hxk } public static void change(Student stu){ stu.name = "Hxk"; } } //定义一个student类 class Student{ String name; }
总结:在Java中如果传递的是变量即为值传递,如果是对象就是引用传递(实际分析的话还是值传递)
Java都是值传递
new:使用new关键词创建对象的时候,除了分配内存外还会给创建好的对象就行默认的初始化,以及对构造器的调用
构造器:类中的构造器也称构造方法,是就行创建对象时必须调用的
构造器必须掌握
//App.java package pro; import pro.Student; public class App { public static void main(String[] args){ //类实例化后会返回自己的对象!!! Student stu = new Student(); System.out.println(stu.name); //null stu.name = "Xiao Hong"; System.out.println(stu.name); //Xiao Hong } }
//Student.java package pro; public class Student { String name; int age; public void run(){ System.out.println(name+" is running."); } }
构造器作用
1.使用new关键字本质调用构造器(不写系统默认创建)
2.用来初始化值
3.一旦显示了有参构造,无参数构造就必须显示定义
//App.java package pro; import pro.Person; public class App { public static void main(String[] args){ Person per = new Person("Hxk",18); System.out.println("He name is " + per.name);//Hxk } }
//Person.java package pro; public class Person { String name = ""; int age = 0; public Person(String name,int age){ System.out.println("You are creat a person"); this.age = age; this.name = name; } }