#码神心得_07# 面向对象
来源:互联网 发布:淘宝网怎样绑定银行卡 编辑:程序博客网 时间:2024/04/29 23:18
java的面向对象思想
每一次上Java_Android课都有会有收获,这就足够了!
1、面向对象与面向过程:
面向过程:“该怎么做”,分解过程,逻辑为先面向对象:“该让谁来做”,先抽象,后具体
2、对象的声明:Person p = new Person();
其中变量p只是一个引用地址,指向Person对象。
3、this关键字:指向当前对象的实例
4、类方法与类变量:都必须用static关键字修饰
调用类方法与类变量时并不需要创建一个对象,可以直接通过类名.方法(类名.变量)进行调用
如:Arrays.toString();调用Arrays类的toString()方法。
5、实例方法与变量:必须通过创建一个类的对象进行调用
6、方法的参数传递:只有值传递而没有址传递
7:递归方法:一种直接或间接调用自身函数的方法或算法。
为了避免死循环,递归一定要有一个“出口”,即结束递归的出口
8、方法的重载:方法名相同参数不同,对于返回类型和修饰符没有严格要求
方法重载的好处:可以根据输入的参数的不同从而采取不同的措施
9、构造器:即构造方法。
对于每一个类,如果没有声明构造方法,则java系统会默认的给出一个隐藏的空的构造方法,如果已经声明了构造方法,则默认构造方法则会被覆盖。
10、可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理
例如:
public class Party {public void info(String...names) {System.out.println("人数:"+names.length);System.out.println("名单:");for (String string : names) {System.out.print(string+" ");}}public static void main(String[] args) {Party party = new Party();party.info("小明","小红");}}
课堂作业
实现一个具有良好封装性的中年Person类
要求:
1. 包含属性用户名和年龄;
2. 对年龄比较合理的校验;
3. 要求输入的用户名在6~8位之间;(其中中文字符每个占2个字节)
代码实现如下:
package mashenHomeWork;import java.io.UnsupportedEncodingException;public class MidlePerson {private String name ;private int age ;int temp = 0;public MidlePerson(String name,int age) {check(name , age);}public void check(String name, int age) {checkAge(age);checkName(name);if(temp==0){System.out.println("用户名为: "+getName()+"\t年龄为: "+getAge());}}public void checkName(String name) {try {//String.getBytes(编码)将一个字符串转化为一个字节数组int length = name.getBytes("GBK").length;if(length<=8 && length>=6){setName(name);}else{System.out.println("警告!用户名长度必须在6~8之间");temp = 1;}} catch (UnsupportedEncodingException e) {e.printStackTrace();}}public void checkAge(int age) {if(age >= 40 && age <= 55){setAge(age);}else{System.out.println("警告!年龄必须在40~55之间。");temp = 1;}}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public static void main(String[] args) {MidlePerson mPerson = new MidlePerson("陈红心", 53);}}
其中难点为如何求出输入的中文字符的位数。一个中文字符占两位,即2字节在java.io.UnsupportedEncodingException类中
有一个方法String.getBytes(编码):将一个字符串转化为一个字节数组
因此可以通过String.getBytes(编码).length就可以求出String的字节数了
- #码神心得_07# 面向对象
- 黑马程序员_Java基础_面向对象(三)_07
- 面向对象编程心得
- js面向对象一点心得
- Java心得--面向对象初步
- Javascript面向对象研究心得
- 面向对象的一些心得
- #码神心得_08# 面向对象三大特征——封装、继承、多态
- 面向对象开发的一点心得 - 文档
- 面向对象三大特点心得理解.......
- 面向对象语言编程的心得
- 面向对象的设计的一点心得
- JavaScript里的面向对象心得
- java入门心得(面向对象概念)
- 学习Delphi面向对象编程的一点心得
- Java面向对象主要知识点总结以及简单项目心得
- 心得 - 面向对象和面向过程的区别
- 心得 : 面向对象和面向过程的区别
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- Java8:λ表达式的本质
- swift学习之路(十二)函数2
- java中的抽象类和接口
- Python安全测试工具合集(整理)
- #码神心得_07# 面向对象
- Get started
- JavaFX实现简单聊天室应用(服务器端)
- 容器引擎
- Eclipse中Maven+Spring3.2.8+SpringMVC HelloWorld项目
- Spring依赖注入的四种方式(重点是注解方式)
- 开源项目之Coding-iOS
- js中document对象详解
- 内存的一点知识