黑马程序员_毕向东_Java基础视频教程学习笔记(十五)
2013-11-17 18:39
831 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)
* 私有只在类中有效
*
* 将age私有化以后,类以外即使建立了对象也不能访问。
*
* 但是人应该有年龄,需要再Person类中提供对应访问age的方式。
*
*
* 注意:私有仅仅是封装的一种表现形式。私有是最小权限。
*
* 之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
* 对访问的数据进行操作。提高代码的健壮性。
/*
* 对象以建立就会调用与之对应的构造函数。
*
* 构造函数的作用:可以用于给对象进行初始化。
*
* 构造函数的小细节:当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。
*
* 当在类中自定义了构造函数后,默认的构造函数就没有了。
*
* 构造函数和一般函数在写法上不同
*
* 在运行商也有不同。
*
* 构造函数时在对象一建立就运行,给对象初始化
*
* 而一般方法时对象调用才执行,给对象添加对象具备的功能。
*
* 一个对象建立,构造函数只运行一次
*
* 而一般方法可以被该对象调用多次。
*
* 什么时候定义构造函数呢?
*
* 当分析事物时,该事物存在一些特性或者行为,那么将这些内容定义在构造函数中。
*/
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)
* 私有只在类中有效
*
* 将age私有化以后,类以外即使建立了对象也不能访问。
*
* 但是人应该有年龄,需要再Person类中提供对应访问age的方式。
*
*
* 注意:私有仅仅是封装的一种表现形式。私有是最小权限。
*
* 之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
* 对访问的数据进行操作。提高代码的健壮性。
/*
* 对象以建立就会调用与之对应的构造函数。
*
* 构造函数的作用:可以用于给对象进行初始化。
*
* 构造函数的小细节:当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。
*
* 当在类中自定义了构造函数后,默认的构造函数就没有了。
*
* 构造函数和一般函数在写法上不同
*
* 在运行商也有不同。
*
* 构造函数时在对象一建立就运行,给对象初始化
*
* 而一般方法时对象调用才执行,给对象添加对象具备的功能。
*
* 一个对象建立,构造函数只运行一次
*
* 而一般方法可以被该对象调用多次。
*
* 什么时候定义构造函数呢?
*
* 当分析事物时,该事物存在一些特性或者行为,那么将这些内容定义在构造函数中。
*/
/* * private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数) * 私有只在类中有效 * * 将age私有化以后,类以外即使建立了对象也不能访问。 * * 但是人应该有年龄,需要再Person类中提供对应访问age的方式。 * * * 注意:私有仅仅是封装的一种表现形式。私有是最小权限。 * * 之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。 * 对访问的数据进行操作。提高代码的健壮性。 */ class Person { private int age; public void setAge(int age) { if (age > 0 && age < 130) { this.age = age; speak(); } else System.out.println("error age"); } public int getAge() { return age; } void speak() { System.out.println("age=" + age); } } public class PersonDemo { public static void main(String[] args) { Person p = new Person(); p.setAge(20); // p.speak(); } }
/* * 对象以建立就会调用与之对应的构造函数。 * * 构造函数的作用:可以用于给对象进行初始化。 * * 构造函数的小细节:当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。 * * 当在类中自定义了构造函数后,默认的构造函数就没有了。 * * 构造函数和一般函数在写法上不同 * * 在运行商也有不同。 * * 构造函数时在对象一建立就运行,给对象初始化 * * 而一般方法时对象调用才执行,给对象添加对象具备的功能。 * * 一个对象建立,构造函数只运行一次 * * 而一般方法可以被该对象调用多次。 * * 什么时候定义构造函数呢? * * 当分析事物时,该事物存在一些特性或者行为,那么将这些内容定义在构造函数中。 */ class Person1{ private String name; private int age; /* * 构造代码块: * 作用:给对象进行初始化。 * 对象以建立就运行,而且优先于构造函数执行 * * 和构造函数的区别: * 构造代码块是给所有对象进行统一初始化, * 而构造函数时给对应的对象初始化。 * * 构造代码块中定义的事不同对象共性的初始化内容。 */ { //System.out.println("构造代码块------>"); cry(); } //Person1(){} //默认的没有参数的构造函数 Person1(){ System.out.println("我的姓名:"+name+" 年龄"+age); //cry(); } /* * this:看上去,是用于区分局部变量和成语变量同名的情况。 * this为什么可以解决这个问题呢? * this到底代表什么呢? * * this:就代表本类的对象,到底代表哪一个呢? * this代表他所在函数所属对象的引用。 * 简单说:哪个对象在调用所在的函数,this就代表哪个对象。 * * */ Person1(String name){ this.name=name; System.out.println("你的姓名:"+name+" 年龄:"+age); //cry(); } Person1(String name,int age){ this.name=name; this.age=age; System.out.println("他的姓名:"+name+" 年龄"+age); //cry() } public void setName(String name){ this.name=name; } public String getName(){ return name; } public void cry(){ System.out.println("cry............"); } public void speak(){ System.out.println("name="+this.name+"age="+age); this.show(); } public void show(){ System.out.println("show()*******"+name); } } public class PersonDemo2 { public static void main(String [] args){ // Person1 per=new Person1(); Person1 per1=new Person1("张三"); Person1 per2=new Person1("李四",20); // per.cry(); // per1.cry(); // per2.cry(); // per1.setName("张三的名字改为\"花花\""); // System.out.println(per1.getName()); per1.speak(); per2.speak(); } }
/* * 需求:给人定义一个用于比较年龄是否相同的功能,也就是是否是同龄人 * * this的应用:当定义类中的功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象 * 但凡本类功能内部使用到了本类对象,都用this表示。 * * this语句只能放在构造函数的第一行;因为初始化要先执行 */ class Person2{ private String name; private int age; Person2(int age){ this.age=age; } Person2(String name){ this.name=name; } /* * this语句:用于构造函数之间相互调用。 */ Person2(String name,int age){ //this.name=name; this(name); //调用上面的构造函数Person(name) this.age=age; } public boolean compare(Person2 person){ return this.age==person.age; } public void speak(){ System.out.println("name="+this.name+" age="+age); } } public class PersonDemo3 { public static void main(String [] args){ // Person2 p1=new Person2(20); // Person2 p2=new Person2(25); // boolean b=p1.compare(p2); // System.out.println(b); Person2 p3=new Person2("zhangda",30); p3.speak(); } }
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员_毕向东_Java基础视频教程学习笔记(二十一)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(三)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(五)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十四)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十七)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十二)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十三)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(二)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(七)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十九)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(二十)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(二十二)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十六)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(六)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十八)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(四)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(八)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(二十三)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十一)