面向对象与方法

软件开发六个步骤:

1.需求分析   2.系统设计   3.编码实现  4.测试阶段   5.反复阶段   6.系统维护

类和对象:

类和对象是面向对象编程的编程技术的核心概念。

类:在面向对象编程技术中的类时根据分析和处理问题的需要,对某一类现实事物的抽象概括

如在讨论人的出生信息的时候,如果只关心日期信息就可以定义类BirthDate来描述,具体某个人,就是该类食物的实际存在的个体,用专业的术语称之为“对象”或“实例”。

类是对一类事物的描述,是抽象的概念;对象是实际存在的该类事物的每个个体

类是对象的蓝图,根据类的定义可以构造多个不同的对象,这些对象都属于同一个类。

类的声明

public class BirthDate {   //定义BirthDate类
     private int day; 
     private int month;
     public int year;
	public int getDay() {
		return day;
	}
	public void setDay(int d) {
		day = d;
	}
	public int getMonth() {
		return month;
	}
	public void setMonth(int m) {
		month = m;
	}
	public int getYear() {
		return year;
	}
	public void setYear(int y) {
	    year = y;
	}
     
}

方法: 定义方法无返回值类型用void;有返回值类型为其他类型,有返回值的方法要用return返回返回值,并接收

方法有无形参与返回值无关

方法重载

* 在一个类中,方法名相同,参数不同(分为类型不同,个数不同)
* 方法的参数是方法的局部变量作用与方法内
* 局部变量可以引用全局变量

静态修饰符Static

 修饰符static修饰静态变量,静态方法
 static被类内所有对象共享--静态的属于类,不属于对象,类唯一,静态方法与静态变量唯一为当前所有对象所共享
 静态的在编译的时候初始化;实例的在创建对象的时候初始化
 静态的方法只能使用静态变量和方法
 实例的可以引用静态的变量和方法,也可以调用实例化的变量和方法

 静态的在调用时早于实例的(初始化晚的可以调用初始化早的)

静态方法不能操作对象,所以不能再静态方法中访问实例域。但是静态方法可以访问自身类中的静态域。

静态方法在调用时最好适用类名来调用,而不是使用对象调用。

使用::操作符来访问自身的作用域之外的静态域和静态方法。

例如定义方法printRectangle打印*号:

public static void printRectangle(int height,int weight) {   //定义方法有俩个形参height 和weight
	 for(int i=0;i<height;i++) {
		 for(int j=0;j<weight;j++) {
			 System.out.print("*");
		 }
		 System.out.println("\n");
	 }
	 System.out.println("\n");
  }

创建对象及访问对象成员:在声明了Java类之后,就可以在其他的类或应用程序中使用该类,如创建该类的对象并访问对象成员等。对象成员是指一个对象所拥有的属性或可以调用的方法。

创建对象:new+构造方法创建对象,并使用对象名.对象成员的方式访问对象成员

如上面创建的BirthDate类,创建对象:BirthDate a=new BirthDate();调用了构造方法,创建了一个BirthDate类的对象并取名为a,接下来用a.来调用a的成员方法

public class ObjectOperating {         //定义类
    public static void main(String[] args) {
		BirthDate a=new BirthDate();   //创建对象a
		a.setDay(13);                  //调用a的方法setDay
		a.setMonth(3);
		a.setYear(1998);
	}
}

信息的隐藏与封装:

在声明属性时用私有的修饰符private声明为私有的成员变量,这样只有在同一个类中才能访问该属性,而不能再其他的场合中直接对其进行操作,这样对数据进行封装的同时实现了信息的隐藏,这里是部分隐藏,用private修饰的day和month不能为ObjectOpreating类直接访问,而year可以被访问

Java通过将封装数据声明为私有的,再提供一个或多个公开的方法实现对该属性的操作,可以加入控制逻辑,限制对属性的不合理操作,使 Java程序更加容易维护

例如对定义setDay方法,实现对日期赋值时的检查

public void setDay(int d) {        //定义setDay方法控制输入的合理性
		if(d<1||day>31) {
			System.out.println("输入不合理,请重新输入");
			return;
		}
		day = d;
	}


构造方法

构造方法时Java类中的一种·特殊的方法,功能在于创建其所属类型的一个新的对象

构造方法没有返回值类型构造方法名必须与所属类的名字相同

package com.csdn.java;
/**
 * 方法的重载
 * @author MadridCR7
 *
 */
public class MyClass {
   private int day;
   private int month;
   private int year;
   public MyClass() {     //无参构造方法调用时不用提供数据也不能提供参数
	   day=1;
	   month=1;
	   year=1998;
   }
   public MyClass(int d,int m,int y) {  //有参构造,调用时提供类型和个数匹配的数据
	   day=d;
	   month=m;
	   year=y;
   }
   public void display() {
	   System.out.println(day+"-"+month+"-"+year);
   }
   public static void main(String[] args) {
	MyClass m1=new MyClass(); //在被调用时,对象的属性被赋值为事先确定的值
	MyClass m2=new MyClass(13,03,1998);//在被调用时为新创建的对象赋不同的值
	m1.display();
	m2.display();
} 
}   //俩个构造方法都可以创建MyClass类的新对象

默认的构造方法:

package com.csdn.java;

public class Person {
    private int age;
    public void setAge(int w) {
    	age=w;
    }
    public void showInfo() {
    	System.out.println(age);
    }
}
package com.csdn.java;

public class Person_Test {
    public static void main(String[] args) {
		Person d=new Person();
		d.setAge(22);
		d.showInfo();
	}
}Person类没有显式的定义任何构造方法,Person d=new Person();调用的是系统默认的无参构造方法,创建了一个Person类的对象
一旦在类中显式的定义了构造方法,无论定义了一个还是多个,系统将不再为我们提供默认的无参数的构造方法


猜你喜欢

转载自blog.csdn.net/madridcrls7/article/details/80028220