1.封装
封装是面向对象编程的核心思想。将对象的属性和行为封装起来,器载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。
public class Student {
private String name;
private int id ;
public String toString(){
return "听完就忘";
}
// public String hashcode(){
// }
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean equals(Object obj){
if(obj!=null){
if(obj instanceof Student){
return ((Student)obj).id==this.id;
}
}return false;
}
}
2.继承
继承性主要利用特定对象之间的共有属性。
eg:public class Student extends Person(){ }
即子类Student继承父类Person
public class Cat extends Animal {
@Override//表示下面的是覆写方法。
public void voice() {
// TODO Auto-generated method stub
System.out.println("喵喵喵");
}
3.多态
将父类对象应用于子类的特征就是多态。
eg: /多态,父类引用指向类对象,根据对象的不同产生不同的结果 /
Animal animal=new Cat();
animal.voice();
Animal animal2=new Dog();
animal2.voice();
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dog dog=new Dog();
/*多态,父类引用指向类对象,根据对象的不同产生不同的结果 */
Animal animal=new Cat();
animal.voice();
Animal animal2=new Dog();
animal2.voice();
}
=============================
public class Dog extends Animal{
public Dog(){
this("黄毛");
//调用本类的构造器,必须写在第一行
//super 调用父类构造器,必须写在第一行
}
public Dog(String color){
}
@Override//表示下面的是覆写方法。
public void voice(){
System.out.println("狗叫");
}
public void voice(String name){
System.out.println("看见张三就咬");
}
public void voice(int age){
this.sleep();
//在方法中值得是调用该方法的那个对象
System.out.println("看见年轻的就跑");
}
public void sleep(){
System.out.println("狗睡觉了");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
4.权限修饰符
public protected default private
本类 √ √ √ √
同包 √ √ √ ×
不同包子类 √ √ × ×
不同包非子类 √ × × ×
5.封装类
Interger Boolean等
正常赋值
Interger i=new Integer();
自动装包:
integer j=10;
自动拆包
int i=new integer();