类和对象交通工具火车汽车飞机轮船类对象计算机世界现实世界对象类抽象数据类实体实例化抽象计算机逻辑的实现映射对象静态:对象的状态(特征)动态:对象的行为(动作)属性行为类:一个模板,相同属性和行为的一组对象的集合对象:类的一个实例封装:将对象的属性和行为封装起来类继承:父类(超类)与子类多态:允许一个接口被多个同类动作使用,如方法重载就是多态的一种方式。方法重载publicclassmethodloadmax{publicstaticintgetmax(intx1,intx2){if(x1=x2)returnx1;elsereturnx2;}publicstaticdoublegetmax(doublex1,doublex2){if(x1=x2)returnx1;elsereturnx2;}publicstaticvoidmain(Stringargs[]){System.out.println(Themaxis+getmax(3,4));System.out.println(Themaxis+getmax(3.6,4.5));}}类1.类的定义class类名{<类主体>}2.类主体(1)成员变量:类对象的属性(3)构造方法:初始化一个新对象,如果没有创建,java编译器会自动创建,方法名与类名相同(4)类的主方法:java应用程序的入口(2)成员方法:类对象的行为(方法)publicclassHelloWorld{publicStringx=“HelloWorld”;publicvoidHello(){System.out.println(x);}publicstaticvoidmain(String[]args){Hello}}成员变量成员方法定义成员方法:权限修饰符返回值类型方法名(参数类型参数名){...//方法体return返回值;}主方法类的构造方法每当类实例化一个对象时,类都会自动调用构造方法。特点:1.构造方法没有返回值,不能用void、static等来修饰。2.构造方法的名称要与本类的名称相同。publicclassTest{Test(){}}对象1.创建对象:可以使用new操作符调用构造方法创建对象类名对象名=new类名(参数);2.访问对象:对象.类成员例:publicclasscircle{staticdoublepi=3.1415;publicstaticdoublegetarea(doublex){returnpi*x*x;}publicstaticvoidmain(String[]args){circlemycircle=newcircle();System.out.println(mycircle.getarea(5.0));}}this关键字this是本类对象的引用publicclassperson{privateStringname;privateintage;publicperson(Stringname,intage){name=name;age=age;}}this.name=name;权限修饰符1.private:该成员变量只能在本类中被使用。2.public:除了可以在本类使用之外,还可以在子类和其他包中的类中使用。3.protected:只有本包内的该类及其他类或子类可以使用,其他包的类不可使用。局部变量局部变量的有效范围从该变量的声明开始到该变量的结束为止局部变量id的作用范围局部变量i的作用范围publicclasstest{staticinta=0;voidmethod(){intsum=0;sum=sum+1;System.out.println(a=+a);System.out.println(sum=+sum);}publicstaticvoidmain(String[]args){testt=newtest();t.method();System.out.println(a=+a);}}System.out.println(“sum=+sum);静态变量、常量和方法问题:在球类中使用PI这个常量,在另外一个圆类中也需要使用PI这个常量解决方法:两个类在同一个内存区域共享一个数据,可以将其设置为静态的。由static修饰的变量、常量和方法被称作静态变量、常量和方法。publicclassTest{staticdoublepi=3.1415;publicstaticdoublegetarea(doublex){returnpi*x*x;}publicstaticvoidmain(String[]args){System.out.println(getarea(3.0));}}如果删除publicclassTEST{staticinti=47;publicvoidcall(){System.out.println(调用call()方法);for(i=1;i3;i++){System.out.println(i);if(i==2){System.out.println(\n);}}}publicstaticvoidmain(String[]args){TESTt1=newTEST();TESTt2=newTEST();t2.i=60;System.out.println(t1调用变量i的结果:+t1.i);t1.call();System.out.println(t2调用变量i的结果:+t2.i);t2.call();}}结果有何不同circleradius:doublecircle()circle(newradius:double)getareacircle1radiusis1circle2radiusis25circle3radiusis125一个类模板三个circle类模板的对象UML类图:将类和对象的图解使用统一建模语言(UnifiedModelingLanguage,UML)的图形符号进行标准化。类名数据域构造方法和方法构造方法和方法publicclasscircle{staticdoublepi=3.1415;doubleradius;publicdoublegetarea(){returnpi*radius*radius;}circle(){radius=1.0;}circle(doublenewradius){radius=newradius;}publicstaticvoidmain(String[]args){circlecircle1=newcircle();System.out.println(circle1.getarea());circlecircle2=newcircle(25);System.out.println(circle2.getarea());circlecircle3=newcircle(125);System.out.println(circle3.getarea());}}