第五章,面向对象基础篇

Posted cathy_mu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五章,面向对象基础篇相关的知识,希望对你有一定的参考价值。

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;
}

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

表示当前对象

 

以上是关于第五章,面向对象基础篇的主要内容,如果未能解决你的问题,请参考以下文章

使用java实现面向对象 第五章

第五章 使用java实现面向对象异常

第五章:面向对象2

第五章 面向对象编程设计与开发——续2

第五章 面向对象编程设计与开发——续

java第五章:面向对象(oop)三大特性之多态