软件开发六个步骤:
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类的对象