码迷,mamicode.com
首页 > 其他好文 > 详细

第五章,面向对象基础篇

时间:2017-11-09 11:23:39      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:通过   equal   面向对象   oid   pre   属性   als   输入   byte   

5.3 封装性
  ? 为了解决属性必须封装且又必须访问的矛盾,只要是被封装的属性,必须通过setter和getter方法设置和取得。
  ? 为前面类的私有属性加上getter和setter方法

Public void setAge(int a){
  Age = a;
}
Public int getAge(){
  Return age;
}

setter方法可以加上检测代码检测输入的数据是否合法。


5.4构造方法
  

Person per = null;声明对象时不调用构造方法。
Per = new Person();实例化对象时调用构造方法。

? 构造方法也是可以重载的。只要每个构造方法的参数类型或参数个数不同,即可实现重载。


5.5 匿名对象
匿名对象只在堆内存中开辟空间,而不在栈内存的引用。

new Person("cathy",30).tell(); //匿名对象

 

5.6 实例讲解

class Student{
  private String stuno;
  public Student(){
    public Student(String stuno){
      this.setStuno(stuno);
    }
  }
  public float sum(){
    return math+english;
  }
  public float avg(){
    return this.sum/3;
  }

5.7 String
? ==是用来进行地址比较的
Str2 str3指向同一个空间,他们的地址值就是相同的。
内容比较用equals,

str2.equals(str3)
“hello”.equals("hello"),一个字符串可以调用string类中的方法,说明一个字符串就是一个string类的匿名对象。

 

? String str1 = “hello”;

使用这种方式定义字符串有一个好处,就是如果一个字符串已经被一个名称所引用,则以后再有相同的字符串声明时,就不会再重新开辟空间。

String str2 = “hello”; str2==str1.
java中有个字符串池。这种设计叫共享设计,设计思路是,对象池中保存多个对象,新实例化的对象如果已经在池中定义了,则不再重新定义,指向已存在的实例空间。
使用new关键字,无论如何都会重新开一个空间。
对于字符串,就直接赋值,不要采用new。


? 字符串的内容一旦声明不可改变。
非要改变就用stringbuffer类。

 

? String (char[] value)字符数组变字符串。这是一个构造方法
char[] toCharArray() 字符串变字符数组。这是一个普通方法
char charAt(int index)字符串中取出指定位置字符
int length()字符串长度
String trim() 清除左右两端空格
String[] split(String regex) 按指定字符串拆分 

IO操作中经常会遇到字符串与byte数组或char数组之间的转换操作。

? length取得数组的长度。
length()取得字符串的长度。

 

5.8 

 

5.9 this 关键字
? 可以使用this强调本类中的方法
表示类中的属性

public Person(String name){
  name=name;
}
Vs.
public Person(String name){
  This.name=name;
}

调用本类的构造方法?????????

表示当前对象

 

第五章,面向对象基础篇

标签:通过   equal   面向对象   oid   pre   属性   als   输入   byte   

原文地址:http://www.cnblogs.com/CATHY-MU/p/7807984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!