java学习总结02

 1 import java.util.Scanner;
 2 
 3 public class PersonDemo {
 4         public static void main(String[] args){
 5             
 6             person p1 = new person("Xiaolei", 20);
 7             p1.setName("lifang");
 8             String newname = p1.getName();
 9             System.out.println(newname);
10             
11             
12     }
13 }
14 
15 class person{
16     String name;
17     int age;
18     person(String name, int age){
19         
20         System.out.println(name + " age is " + age);
21         cry();
22     }
23     
24     
25     public void setName(String n){
26         name = n;
27     }
28     public String getName(){
29         return name;
30     }
31     
32     public static void cry(){
33         System.out.println("cry...");
34     }
35 }

最近学完了core java的第四章类与对象部分,仍是以为要来作一个总结,由于不少特性在学习后会开始遗忘,好记性不如烂笔头。java

java是一门面向对象的语言。函数

学习

类是是一个具备相同特性的全部元素的大集合,是建立的对象模板存放的地方,建立的对象成为类的实例。每要建立一个对象,它就要有相对应的类,类中有对象的属性,对象的初始化,对象所依赖的方法等。this

类与类之间有三个关系spa

1.依赖 一个类须要访问另外一个类里面的信息设计

2.继承 一个类B和类A有关系,可是B存在除了A之外的多余功能,那么就说类B继承类A。A成为超类,B称为子类。如经理manager是超类,员工staff是子类。用extends关键字code

class B extends A
{

}

所以,子类的功能比超类更丰富,在设计类的时候应该将通用的方法放在超类中,而将特殊的功能放在子类中。当须要调用子类继承超类的变量时,用super关键字,如super.risemoney。对象

在继承的时候,子类惟一没有继承的是超类的构造方法,因此要用super关键字来指定调用超类中的构造方法。blog

B(){继承

super(参数列表);

}

不然就会出现错误。由于java不会给已经有了构造函数的类自动添加构造方法。因此解决办法也能够在原来的超类中自动添加一个空的构造函数。

3.聚合

在实现一个类的时候,因为公有数据十分危险,因此应当将全部的数据域设计为私有的,经过private关键字。

 

对象

 对象有三个主要的 特性
1.对象的行为———— 能够对对象施加哪些操做,能够对对象施加哪些方法。
2.对象的状态———— 当施加那些方法的时候对象是怎么响应
3.对象的标识———— 如何辨别具备相同行为和状态的不一样对象
 
对象在类中定义的属性称做实例域,方法用于操做对象以及存取它们的实例域
 
每次建立对象后,要用构造器对对象进行初始化。
1.构造器名与类相同
2.每一个类能够有一个以上的构造器
3.构造器有0个1个或多个参数
4.构造器没有返回值
5.构造器老是伴随着new操做一块儿调用
构造器和函数能够重载,重载是名字相同但参数不一样,包括类型或者数目。
构造器中能够有个初始化块,它是每个构造器所共有的部分。格式是一个大括号括好的部分
this关键字
若是代码这么写
//这样很影响代码的阅读性
class
person { String name; int age; person(String name, int age) { name = name; age = age } }

因此使用this关键字就是区分隐式参数和显式参数。显式参数即在括号内的参数,隐式参数没有直接传递到。

//这是修改后的代码
class person
{
    String name;
    int age;
    person(String name, int age)
    {
        this.name = name;
        this.age = age
    }
}

this的做用能够理解为引用的的对象替代。这个写法能够将实例域和局部变量明显的区分开。

final实例域

若是在构造器构造一个值之后,某个域在后续的操做中不能再修改,那么使用finnal关键字。 private final String name

静态域与静态方法

static关键字

静态域是全部类都共有(共享)的一个域,每一个域都会在这里得到一份拷贝。即若是好几个类都会有相同的部分,操做或者是实力域,那么能够建立一个静态的类,在里面放这个共享的东西。若是不加static关键字的话,那么只有这个类的对象能够调用。

 
 封装
  • 封装对象

构造函数是对对象进行的封装

  • 封装对对象的操做

将对对象的操做,包括功能,判断等进行封装,由对象进行调用

  • 封装对象的内部数据

对某些数据用private修饰能够隐私化,这些数据不能被篡改,只能经过对应的修改和取得方法去改变

 

 匿名内部类

new 父类/接口() {

//类本体操做

};

相关文章
相关标签/搜索