您的位置:首页 > 编程语言 > Java开发

java-------面向对象基础-方法

2017-12-06 16:42 375 查看
package demo;
/*
* 程序=算法+数据结构
*
* 1.类 class
*  1.1 类的定义
*  类是对象的模板,由类构造(construct)对象的过程称为创建类的实例(instance).
*  对象中的数据称为实例(instance),操纵数据的过程称为方法(method)
*  1.2 类的语法
*   修饰词  class 类名{
*   }
*
* 2.对象
*  对象的行为(behavior)----可以对对象实施哪些操作,或者对对象可以施加哪些方法
*  对象的状态(state)-------当施加那些方法时,对象如何响应
*  对象的标识(identity)----如何辨别具有相同行为或状态的不同对象
*
* 3.类和类之间的关系
*   依赖("uses-a")
*   聚合("has-a")
*   继承("is-a")
*
* 依赖(dpendence):就是一个类的方法操纵另一个类的对象,尽量要减少使用,要降低类之间的耦合度
* 聚合(aggregation):也可以说是关联,意味着类A的对象包含类B的对象
* 继承(inheritance):就是类A继承类B
* 程序员多数采用UML(统一建模语言)绘制类图,用来描述类之间的关系
*
* 4.方法
*   1.1 方法的定义
*   权限修饰词,返回值类型,方法名(参数列表){
*      方法体
*   }
*   void   無返回值類型       無return    調用不用聲明變量來接收
*   數據類型    有返回值           有return       調用要聲明變量來接收
*
*   1.2.方法的签名
*    方法名和参数列表
*
*   1.3方法参数的传递(都是值的传递)
*    一个方法不能修改一个基本数据类型的参数
*    一个方法可以改变一个对象参数的状态
*    一个方法不能让对象参数引用一个新的对象
*
* 5.修饰符
*  5.1 访问控制修饰符
*  public    公有的
*  private    私有的                       本类
*  protected   受保护的            本类,子类,同包类
*  defailt     默认的                本类,同包类
*
*  5.2 abstract  抽象的
*   抽象类,抽象方法修饰词
*    抽象类不能被实例化;
*    抽象类不能被定义为 private、final、和 static 类型.
*    非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现.
*    没有抽象的构造方法.
*
*  5.3 static  静态的
*     在静态方法中不能直接访问实例方法和实例变量.
*     在静态方法中不能使用 this 和 super 关键字.
*     静态方法不能被 abstract 修饰
*     静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问.
*     静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份.
*     静态函数可以直接访问静态的成员,但是不能够直接访问非静态成员.,非静态函数可以访问静态和非静态成员.
*     当类被加载时,静态代码块只能被执行一次。类中不同的静态方法代码块按他们在类中出现的顺序被依次执行.
*
*  5.4 final  最终的
*     final 修饰基本类型变量的时候, 该变量不能重新赋值;
*     final 修饰引用类型变量的时候, 该变量不能重新指向其他对象
*     final 修饰的方法为最终的方法, 该方法不能被重写;
*     private 类型的方法都默认为是final方法,因而也不能被子类重写;
*     final 修饰的类为最终的类, 不能被继承
*
*
*
*
*
*/
public class Demo {
/*method_1,_2方法的传递不会改变一个基本类型的参数*/
public static int method_1(int a){
a=a*2;
return a;
}
public static void method_2(int b){
b=b+2;
}
public static void method_3(String c){
c="world";
}
public static void method_4(StringBuffer d){
d.append("world");
}
/*可以改变一个对象的参数状态*/
public static void method_5(DataWarp e){
int emp = e.a;
e.a=e.b;
e.b=emp;
System.out.println("5方法里a的值:"+e.a+",b的值:"+e.b);
}
public static void main(String[] args){
int a=2;
System.out.println("a="+a);//2
System.out.println("a="+method_1(a));//4 改变只是相对于这个方法管用,出了这个方法就不管用了.这就是局部变量
int b=4;
method_2(b);
System.out.println("b="+b);//4
String  c = new String("hello");
method_3(c);
System.out.println("c="+c);//java
StringBuffer  d = new StringBuffer("hello");
method_4(d);
System.out.println("d="+d);
DataWarp e = new DataWarp();
e.a=6;
e.b=9;
method_5(e);
System.out.println("交换后a:"+e.a+",b:"+e.b);

}
}
class DataWarp{
int a;
int b;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 面向对象