title: Java基础语法(9)-面向对象之类的成员 html
blog: CSDNjava
data: Java学习路线及视频算法
我要用洗衣机,只须要按一下开关和洗涤模式就能够了。有必要了解洗衣机内部的结构吗?有必要碰电动机吗?数组
我要开车,…学习
隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提升系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。.net
Java中经过将数据声明为私有的(private),再提供公共的(public)方法:设计
getXxx()和setXxx()实现对该属性的操做3d
class Animal { private int legs; // 将属性legs定义为private,只能被Animal类内部访问 public void setLegs(int i) { if (i != 0 && i != 2 && i != 4) { System.out.println("Wrong number of legs!"); return; } legs = i; } public int getLegs() { return legs; } }
public class Zoo { public static void main(String args[]) { Animal xb = new Animal(); xb.setLegs(4); // System.out.println(xb.getLegs()); } }
Java权限修饰符public、protected、(缺省)、private置于类的成员定义前,用来限定对象对该类成员的访问权限。code
修饰符 | 类内部 | 同一个包 | 不一样包的子类 | 同一个工程 |
---|---|---|---|---|
private | Yes | |||
(缺省) | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
对于class的权限修饰只能够用public和default(缺省)。视频
public类能够在任意地方被访问
default类只能够被同一个包内部的类访问
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类便可。
此处的多个类称为子类(派生类),单独的这个类称为父类(基类或超类)。能够理解为:“子类 is a 父类”
class Subclass extends SuperClass{ }
Person p = new Student(); Object o = new Person(); //Object类型的变量o,指向Person类型的对象 o = new Student(); //Object类型的变量o,指向Student类型的对象
public class Test { public void method(Person e) { e.getInfo(); } public static void main(Stirng args[]) { Person e = new Person(); e.getInfo(); }
做用:用来判断某个对象是否属于某种数据类型。
注意: 返回类型为布尔类型
Fu f1=new Zi(); Fu f2=new Son(); if(f1 instanceof Zi){ System.out.println("f1是Zi的类型"); } else{ System.out.println("f1是Son的类型"); }
public class Main { public static void main(String[] args) { Person person = new Superman(); Superman s = (Superman)person; //向下转型 s.sleep(); s.fly(); s.eat(); } }
2020-3-31: Java基础语法(8)-数组中的常见排序算法
2020-3-31: Java基础语法(9)-面向对象之类的成员
今日好文推荐
今日资料推荐