封装

使用private关键字去修饰变量和方法,使变量和方法只能够在本类当中使用,但他会给本类提供接口,让其他类来间接访问本类当中的数据。

public class Animal{private String name;private int age;public void setName(String name){this.name=name;}public String getName(){return name;}public void setAge(int age){if (age<0){System.out.println("error");}else{this.age=age;}}public int getAge(){return age;}public  void introduce(){System.out.println("我叫"+name+"今年"+age);}public static void main(String[] args){Animal dog=new Animal();dog.setAge(-18);dog.setName("daHuang");dog.introduce();}}

继承

注意:
子类拥有父类除 private 以外的所有属性和方法(就是代码)。
子类可以拥有自己的属性和方法。
子类可以重写实现父类的方法。
Java 中的继承是单继承,一个类只有一个父类。

语法格式
class 子类 extends 父类{}

public class Animal {public int legNum;     //动物四肢的数量
//类方法
public void bark() {System.out.println("动物叫!");
}
}//Dog类继承Animal类
public class Dog extends Animal {}public class Test{public static void main(String[] args) {Dog a = new Dog();a.legNum = 4;a.bark();
}
}

多态

抽象类

抽象类定义
1.抽象类和抽象方法必须都有abstract
2.抽象类不能被实例化,也就是不能new关键字去产生对象。
3.抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
注意
抽象类当中可以有普通方法和抽象方法。
抽象方法
抽象方法就是在方法的前面加上 abstract,他也有普通方法的功能和属性。
其父类必须是抽象类(再类名前面加上abstract),继承的子类必须重写父类中的抽象方法。

接口

接口用于描述类所具有的功能(就是更加抽象的类),而不提供功能的实现。
接口语法:

 修饰符 interface A extends 接口1,接口2{  public  static  final 数据类型 成员名称 = 常量; //数据成员必须赋初值,其中public static  final 可以不写abstract 返回值的数据类型 方法名称(参数..); //抽象方法,注意在抽象方法里,没有定义方法主体default 返回值的数据类型 方法名称(参数..){}static 返回值的数据类型 方法名称(参数...){}}以上方法都有public都可以默认不行,会自动添加。

访问接口:
全局常量:实现类.常量
静态方法:接口名.方法名
抽象方法和默认方法 : 通过接口 的实现类 的对象来访问
注意:
implements实现接口,并实现接口中的全部抽象函数。其中实现的类必须把接口中的方法全都去重写。

接口的实现:

    class 类名称 [extends  父类名] implements 接口A,接口B
{...
}接口不能用于实例化对象。

public class Animal {public static void main(String[] args) {System.out.println(dogName.ID);//全局常量获取:实现类.dogName daHuang=new dogName();daHuang.breathe();   //抽象函数获取:实现类对象.daHuang.getType("金毛"); //默认函数获取:实现类对象.System.out.println(Dog.getID()); //静态函数获取:接口名.}
}

多态

多态: 都是同一个类型,调用同一个方法,却能呈现不同的状态
Animal a = new Animal(); //a是父类的引用指向的是本类的对象
Animal b = new Dog(); //b引用的数据类型和对象的数据类型不一致
为啥会出现多态?
b调用方法的时候实际调用的是Dog()重写后的方法
多态条件
1、b是父类的引用指向的是子类的对象
2、调用的方法有重写

 public class Dog {public void blak(){System.out.println("wangwang");}
}public class Animal extends Dog{String name;int age;public  void blak(){System.out.println("动物叫");}public static void main(String[] args){Dog daHuang=new Animal();daHuang.blak();//动物叫}}

内部类

非静态类

非静态内部类可以直接在一个类里面定义

public class Animal{private String name;float hp;String blak;// 非静态内部类,只有一个外部类对象存在的时候,才有意义class BattleScore{int kill;int die;int assit;public  void legendary(){if(kill>=8)System.out.println(name+"咬了");elseSystem.out.println(name+"被咬了");}}public  static void main(String [] args){Animal dog=new Animal();dog.name="daHuang";// 实例化内部类BattleScore score=dog.new BattleScore();score.kill=9;score.legendary();}}调用方式:父类引用.子类对象
如 dog.new BattleScore();

静态内部类

静态内部类 不需要一个外部类的实例为基础,可以直接实例化

语法:new 外部类.静态内部类();

因为没有一个外部类的实例,所以在静态内部类里面不可以访问外部类的实例属性和方法

访问静态内部类的类方法和实例方法

public class Main {static class InnerClass{public static void m(){System.out.println("静态内部类方法");}public void m_1(){System.out.println("实例方法");}}public static void main(String[] args) {Main.InnerClass.m();Main.InnerClass mi= new Main.InnerClass();mi.m_1();}}

局部内部类

定义在方法中的类,有效范围在方法之中。
局部内部类可以访问外部类的所有成员和方法,但是内部类的成员和方法仅限于此方法中使用。

public class Animal{int m=1;void test1(){System.out.println("外部成员类方法");}void test2() {//定义局部内部类Inner,在局部内部类中访问外部类变量和方法class Inner {int n=1;void show() {System.out.println("外部静态变量m=" + m);test1();}}//在局部内部类的方法中,调用局部内部类变量和方法Inner inner=new Inner();System.out.println("局部内部类变量n="+inner.n);inner.show();}public  static void main    (String [] args){Animal inner=new Animal();inner.test2();}
}

匿名类(没有名字的类)

如果改方法的参数数一个类型,通常使用匿名类。
匿名内部类创建语法

interface dog{void shout();
}public class Animal{public static void main(String [] args){String name="xiaohua";animalShout ( new dog(){//实现shout()方法public void  shout(){System.out.println(name+"汪汪");}});}public static void animalShout(dog an){an.shout();}
}

Java--面向对象_中相关推荐

  1. 在java面向对象编程中_谈一谈你对封装_继承_多态概念的理解_Java新职篇:面向对象编程的3个原则是什么?...

    原标题:Java新职篇:面向对象编程的3个原则是什么? 所有面向对象的编程语言都提供帮助你实现面向对象模型的机制,这些机制是封装,继承及多态性.现在让我们来看一下它们的概念. 封装 封装(Encaps ...

  2. java面向对象_谈谈Java的面向对象

    类的拷贝和构造 C++是默认具有拷贝语义的,对于没有拷贝运算符和拷贝构造函数的类,可以直接进行二进制拷贝,但是Java并不天生支持深拷贝,它的拷贝只是拷贝在堆上的地址,不同的变量引用的是堆上的同一个对 ...

  3. java面向对象_JAVA中面向对象

    一.方法: 1.方法概述: 在JAVA中,方法就是用来完成解决某件事情或实现某个功能的办法. 2.方法的语法格式: 修饰符  返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,.....){ ...

  4. 中软国际入职java考核_中软国际技术人员入职试题2(Java)

    中软国际技术人员入职试题2(Java) Java 笔试试题 一.介绍JSP中常用的内部对象.(时间4分钟) 1 request 2 response 3 out 4 application 5 ses ...

  5. c语言模拟java面向对象_面向对象设计模式C语言实现.PDF

    第15卷第l1期 微机发展 V01.15NO.11 2005年11月 I)evdopment NOV.2()()5 Micrtxx)mpuler 面向对象设计模式的C语言实现 朱进 (东南大学软件学院 ...

  6. 马士兵java面向对象_马士兵JAVA零基础后端工程师

    马士兵JAVA零基础后端工程师 简介 Java的应用可以说是无处不在,从桌面办公应用到网络数据库等应用,从PC到嵌入式移动平台,从Java小应用程序(Applet)到架构庞大的J2EE企业级解决方案, ...

  7. c语言模拟java面向对象_纯c语言实现面向对象分析与示例分享

    #include #include //接口 #ifndef Interface #define Interface struct #endif //类 #ifndef Class #define C ...

  8. 吃货联盟点餐java面向对象_使用面向对象思想编写吃货联盟

    packagecom.dingcanxitong3;//创建一个功能的类实现各个功能接口 importjava.util.Scanner;public class Functions implemen ...

  9. java面向对象编程_包_继承_多态_重载和重写_抽象类_接口_this和super

    目录点击跳转 包 包的命名方法 导入包中的类 系统包的介绍 **注意事项** 继承 基础知识 构造方法 **基础语法** `protected`修饰符 组合 `this`和`super`关键字 `th ...

  10. 7.0_[Java 面向对象]-类和对象

    ################################################## 目录 面向对象扫盲 万物皆对象 分类思想 对象的属性与方法/实例的特征和行为 如何在 Java 中 ...

最新文章

  1. linux各版本使用率,Windows10系统各版本份额出炉:十月更新占有率不高。
  2. FFT算法8点12位硬件实现 (verilog)
  3. rpm包安装mysql5.5
  4. Netfilter 详解
  5. android studio复选按钮样式_Ubuntu与Android开发的邂逅
  6. php进程状态进度,PHP监控进程状态,完成掉线自动重启
  7. 面试官问现在工资是多少,该怎么回答?
  8. 尚硅谷大数据之Linux
  9. windows server2008r2 下载
  10. ADNI-MRI-PET-ANALYSIS
  11. Separating set
  12. 长截图、识别图片里的文字,不用装其它软件!
  13. Bugzilla的快速入门指南(全网最详细)
  14. flashpaper java_FlashPaper API 说明
  15. 北航计算机学院王静远,北京航空航天大学计算机学院导师教师师资介绍简介-李帅...
  16. 送书 | 教你爬取电影天堂数据
  17. 网贷查询接口开发 网贷黑名单查询 个人网贷黑名单查询
  18. sap开发语言_海纳易拓:认识SAP顾问的职业前景
  19. python_爬虫 16 Scrapy框架之(二)快速入门
  20. 计算机网络实验 局域网的组建,计算机网络实验-局域网组建及测试实验

热门文章

  1. AUTOEXEC.BAT及CONFIG.SYS文件用法
  2. 固态硬盘(SSD) 和机 械硬盘(HDD) 优缺点比较
  3. Raspberry Pi 4 with Debian GNU/Linux 11 (bullseye)
  4. 腾讯云CentOS7运行基于SSM的个人博客----第三节:使用Dokcer安装JDK、Tomcat环境
  5. 笔记本更换固态硬盘的教程
  6. 从《黑暗森林》到《萤火意志》:外表与内在极度失衡的“艺术品”
  7. 小班关于计算机运用的教案,关于信息技术在幼儿园的运用教案设计
  8. 分享两个无限制的免费快递查询接口
  9. 利用批处理添加受信任站点
  10. 201606中通笔试题