#码神心得_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的字节数了


0 0
原创粉丝点击