资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章第五章 面向对象基础面向对象基础JavaJava程序设计程序设计luqianghfut.edu. cn http:/cadcg.hfut.e du.cn路路 强强Lu Qiang, 2009 Hefei University of Technology ,School of Computer and Information PagePage 2 2 / 4/ 42 2本章学习提示 本章我们主要学习面向对象编程的基本概念。本章我们主要学习面向对象编程的基本概念。 封装、继承、多态 访问控制符的使用 Static 和 final 的使用hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology ,School of Computer and Information PagePage 3 3 / 4/ 42 2目目 录录面向对象概念面向对象概念1访问控制符访问控制符32类和对象类和对象内部类内部类5static 或者 类名 对象变量; 对象变量=new 类名(参数1,参数2,);hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology , School of Computer and Information PagePage 1717 / 4/ 42 2类的定义 /创建一个新人物 class People private String name, address; public void setInfo(String newname, String newaddress) name = newname; address = newaddress; public String toString() return “+ name + “, “ + address + “; public class ch05_01_People public static void main(String args) People someguy=new People(); someguy. setInfo( “佐助“, “火影村“ ); System.out.println(someguy.toString(); hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology ,School of Computer and Information PagePage 1818 / 4/ 42 2声明对象时的内存模型 当用People类声明一个对象someguy:People someguy = new People(); 内存模型仅建立了“someguy”对象的引用(reference)尚未真正分配内存空间hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology ,School of Computer and Information PagePage 1919 / 4/ 42 2对象分配内存后的内存模型 当系统见到someguy. setInfo( “佐助“, “火影村“ ); 做两件事: 为x和y成员变量分配内存,即类的所有成员变量 被分配内存空间,然后执行构造方法中的语句. new运算符在为name和address成员变量分配内存 后,将返回一个引用 给对象 someguy 。 hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology ,School of Computer and Information PagePage 2020 / 4/ 42 2对象的初始化和构造方法 构造方法是一个类方法中方法名与类名相同的类方法, 它的作用是当使用new关键字创建一个对象时,自动 调用并对新建对象进行初始化操作. 构造方法的特点特点构造方法与类名相同构造方法没有返回值,不定义返回类型构造方法可以重载,针对参数数量和类型定义多个同名构造方法构造方法可以继承,子类可以继承父类的构造方法构造方法不能由编程人员显式地直接调用,它是在对象创建时 由newnew运算符运算符自动调用的构造方法只用来对类实例进行初始化,目的在于简化初始化操作 在Java中,对象的创建和初始化是统一创建和初始化是统一的两者缺一不可hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology ,School of Computer and Information PagePage 2121 / 4/ 42 2构造方法构造方法的作用 构造方法的作用对象初始化引入更多的灵活度(变量赋值或更复杂的操作)类中可以不定义构造方法 每个类都至少有一个构造方法每个类都至少有一个构造方法,如果程序员没有为类定义构造方法,系统会自动为该类生成一个默认的构造方法。默认构造方法的名字与类名相同,它的参数列表和方法体均为空,自动将所有实例变量初始化为默认值 (数值型为0,布尔型为false,字符型为u0000,对象型为null ). 一旦定义了自己的构造方法,默认构造方法将不再起作用. hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology , School of Computer and Information PagePage 2222 / 4/ 42 2Code/如何将没有设计构造器的类添加构造器/ 研究带有构造器的类与没有构造器的类之间的区别 class Student /定义 Student 类 static long sum=0; String name; String address; String grade; static int score; public static long collect() /定义类的方法 sum+=score; return sum; public void public void setInfo(StringsetInfo(String x1,String x2,String x3) x1,String x2,String x3) name=x1; address=x2; grade=x3; name=x1; address=x2; grade=x3; public void setScore(int y) score=y; public class ch05_04_Student public static void main(String args ) Student zhang=new Student(); /创建Student类的对象 zhang. setInfosetInfo (“张三”, “屯溪路”, “计算机学院“); zhang.setScore(90); zhang.collect(); Student wang=new Student(); /创建Student类的对象 wang. setInfosetInfo (“王五“, “屯溪路“, “计算机学院 “); wang.setScore(85); System.out.println (zhang.name+zhang.address+zhang.grade); System.out.println (wang.name+wang.address+wang.grade); System.out.println ( “总成绩是 “+wang.collect( ); 引用getMessage()方法对Student类进行初始化hapterhapter5 5 面向对象基础面向对象基础Lu Qiang, 2009 Hefei University of Technology , School of Computer and Information PagePage 2323 / 4/ 42 2Code/采用构造方法实现上述功能,研究带有构造器的类与没有构造器的类之间的区别 class Student static long sum=0; String name; String address; String grade; static int score; public static long collect() /定义类的方法 sum+=score; return sum; Student (String x1, String x2, String x3, int y) name=x1; address=x2; grade=x3; score=y; public class ch05_05_Student public static void main(String args ) Student zhang; zhang=new Student(“张三“,“屯溪路“, “计算机学院“,90); zhang.collect(); Student wang=new Student (“李四“,“屯溪路“, “计算机学院“,85); System.out.println(zhang.name + zhang.address + zhang.grade); System.out.println(wang.name + wang.address + wang
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号