面向对象02
来源:互联网 发布:生产数据分析报告 编辑:程序博客网 时间:2024/05/22 22:35
封装
定义:指在定义一个类时,将类中的属性私有化,私有属性只能在本类中访问。为了使外界可以访问这些私有属性,需要使用一些public修饰的共有方法,获取私有化属性可以使用get()、set()方法
public class Student { private String name; private int age; 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 void show(){ System.out.println("我叫"+name+",我今年"+age); }} public class TestStudent { public static void main(String[] args) { Student student = new Student(); student.setName("李四"); student.setAge(20); student.show(); }}
- 运行结果为:
- 运行结果为:
方法的封装
- 需不需要参数
需不需要返回值类型
public class Max { public static void main(String[] args) { int a=10; int b=20; int max = max(a,b); System.out.println("最大值:"+max); } /*** * 在封装方法时: * 1.需不需要参数 需要两个参数 * 2.需不需要返回值 需要返回max * @param a * @param b * @return max */ private static int max(int a, int b) { int max=a; if(max<b){ max=b; } return max; }}
- 运行结果
继承
- 关键字(extends)
java只支持单继承,不支持多继承
class A {}class B{}//java不支持多继承class C extends B,A{}//A是继承体系中最基础的功能class A {}class B extends A{}class C extends B{}
- java不支持多继承的原因 :如果两个父类的有同样的方法,子类继承父类之后,在调用父类的方法时,分不清是调用的哪个父类的方法
- 继承是指 : 子类获取父类的属性和方法,子类还有自己的特殊方法
子类不可以直接访问父类的私有内容,但是继承继承了父类的私有内容
public class Person {
public String name;
public int age;public void show(){ System.out.println("我叫"+name+",我今年"+age);}}public class Student extends Person{ public static void main(String[] args) { Person person = new Person(); person.name="李四"; person.age=20; person.show(); }}
- 运行结果
- 运行结果
多态
多态满足的条件 : 继承 、 重写方法、 父类的引用指向子类的对象
Animal类
public interface Animal {void call();}
Dog类
public class Dog implements Animal {@Overridepublic void call() { System.out.println("汪汪----");}}
Cat类
public class Cat implements Animal {@Overridepublic void call() { System.out.println("喵喵----");}
}
测试类
public class Test {public static void main(String[] args) { Animal animal1=new Dog(); animal1.call(); Animal animal2 =new Cat(); animal2.call();}}
- 运行结果
重载
重载 : 方法名相同,参数列表(参数类型和参数个数)不同
public class Test {public static void main(String[] args) { int max1 = max(10, 20); System.out.println("最大值为:" + max1); float max2 = max(5.0f, 1.0f); System.out.println("最大值为:" + max2);}public static int max(int a, int b) { int max = a; return b > max ? b : a;}// 方法名相同,参数列表不同public static float max(float a, float b) { float max = a; if (max < b) { max = b; } return max;}
}
重写
重写 : 方法名相同,返回值类型相同,参数列表(参数类型和参数个数)相同
- Person类
public class Person {public String name;public void show() { System.out.println("我是" + name);}}
Student类
public class Student extends Person {
private String hobby;public String getHobby() { return hobby;}public void setHobby(String hobby) { this.hobby = hobby;}@Overridepublic void show() { // TODO Auto-generated method stub super.show(); System.out.println("我的爱好是:" + hobby);}
}
测试类
public class Test { public static void main(String[] args) { Student student = new Student(); student.name="王五"; student.setHobby("唱歌"); student.show(); }}
- 运行结果
阅读全文
1 0
- 面向对象-02
- 02 Java面向对象
- 面向对象(02)
- 02面向对象
- 02 面向对象
- Python面向对象02
- 02 面向对象
- 02_Java面向对象
- Java面向对象02
- 面向对象02
- 黑马程序员-面向对象02
- 黑马程序员------面向对象02
- 黑马程序员--面向对象02
- c++面向对象类02
- java学习-面向对象02
- 面向对象02--java基础
- 面向对象与原型02
- 02 OC面向对象基础
- Dev C++开发lib和dll
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- 创建和开启线程的两种方式
- linux下最好的c开发环境——codeblocks
- 电话拦截器
- 面向对象02
- 《C++ Primer》读书笔记 第13章:拷贝控制
- Android之如何判断设备是平板还是手机
- 用户登录系统
- STL中的vector容器的一点总结
- 搜索-F
- 方法
- Android Hal层简要分析
- UICollectionViewFlowLayout详解