1、面向对象三大特征
·封装(encapsulation)
·继承(inherit)
·多态(polymorphism)
2、成员变量和局部变量
成员变量:写在类体的里画,方法体的外面,声明时可以不进行初始化值,可以被本类或其他类的方法进行调用。
局部变量:写在方法体的里面,声明时必须进行初始化,只能在声明局部变量的方法内进行调用。
public class local_value{ //基本数据类型 byte b; //默认值 0 short s; //默认值 0 int i; //默认值 0 char c; //默认值 \u000 long l; //默认值 0 float f; //默认值0.0 double d; //默认值0.0 boolean boo; //默认值 false //引用数据类型 String str; //默认值 null public static void main(String[] args){ local_value local = new local_value(); System.out.println(local.b); System.out.println(local.s); System.out.println(local.i); System.out.println(local.c); System.out.println(local.l); System.out.println(local.f); System.out.println(local.d); System.out.println(local.boo); System.out.println(local.str ); } }
3、面向对象封装和private关键字
什么是封装?
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的优点:
隐藏代码的实现细节,提高安全性。
class Private{ //姓名 private String name; //年龄 private int age; //对外 提供公共的访问方式,编写set和get方法 public void setAge(int _age){ if (_age>0 && _age<120){ age = _age; }else{ System.out.println("年龄不符合常理,请重新设置!"); } } public int getAge(){ return age; } public void setName(String _name){ name = _name; } public String getName(){ return name; } } class Private01{ public static void main(String[] args) { Private p = new Private(); //p.age = -10; // 年龄不符合常理,不能为负数 p.setAge(10); p.setName("好人"); System.out.println(p.getName()); System.out.println(p.getAge()); } }
4、引用传递、值传递
基本数据类型的参数传递和值传递
class transfer{ public static void m1(int i){ i = i + 1; System.out.println("m1方法中的i=" + i);//11 } public static void main(String[] args){ int i = 10; m1(i); System.out.println("main方法中的i=" + i);//10 } }
引用数据类型的参数传递,传递的引用
class transfer01 { private int age; public void setAge(int _age){ age = _age; } public int getAge(){ return age; } } class transfer02 { public static void m1(transfer01 a){ int age = a.getAge(); a.setAge(++age); System.out.println("m1方法中的age=" + a.getAge()); // 11 } public static void main(String[] args) { transfer01 a = new transfer01(); a.setAge(10); m1(a); System.out.println("main方法中的age=" + a.getAge()); // 11 } }