成功上传的截图
前端
码云上的截图
java
遇到以下的问题
linux
解决方法
我发如今进行第一步git clone命令时候,没有用到我码云的https地址,而且在此地址的基础上cd一个后面部分的文件夹;好比个人码云https的地址为https://gitee.com/yuchao20189220/over_20189220java.git,因此以下图所示
git
遇到问题
运行一下"statistics.sh"脚本的时候,发现:
编程
解决方法
app
"statistics.sh"脚本运行结果图
函数
public class People {//class关键字,定义类的关键字,People是类的名称 public String name;//类的属性 public String sex; public int age; //类的方法 public void sleep(){ System.out.println("人疲倦的时候喜欢睡觉觉"); } public void eat(){ System.out.println("人饥饿的时候喜欢吃饭饭"); } public static void main(String[] args) {//主函数 People p=new People();//对象的实例化 p.eat();//调用类的方法 p.sleep(); } }
public class People { public String name; public String sex; public int age; public People(){//默认的构造方法,初始化对象的时候调用默认构造方法 System.out.println("类默认的构造方法,不含参数"); } public People(String name){//含参的构造方法 System.out.println("含参的构造方法"); } public void sleep(){ System.out.println("人疲倦的时候喜欢睡觉觉"); } public void eat(){ System.out.println("人饥饿的时候喜欢吃饭饭"); } public static void main(String[] args) { People p=new People(); p.eat(); p.sleep(); } }
package com.cnblogs; public class Men { public String name;//共有属性 private int age;//私有属性 protected String sex;//受保护的属性 int a=10;//默认的 }
package com.cnblogs; public class Men { //所有变量,在整个做用域均可以使用 public String name;//共有属性 private int age;//私有属性 protected String sex;//受保护的属性 int a=10; public static void main(String[] args) { //定义的i是局部变量,只能够在for循环这个局部内进行使用 for(int i=0;i<10;i++){ System.out.println("局部变量,在能够在局部进行使用"+i); } } }
package com.cnblogs; public class Dog { int a=21; int b=12; public Dog(){//this关键字做为方法名来初始化对象 this(23,43); } public Dog(int a, int b) { // TODO Auto-generated constructor stub this.a=a; this.b=b; System.out.println(a+" "+b); } public void add(){//经过this关键字能够调用类的属性和方法 int c=this.a+this.b; System.out.println(c); } public void setA(int a){//使用this关键字区分同名变量 this.a=a; } public int getA(){ return a; } public static void main(String[] args) { // TODO Auto-generated method stub Dog d=new Dog(); d.add(); d.setA(44); int dd=d.getA(); System.out.println(dd); } }
package com.cnblogs; public class Cat { public void cat(){ System.out.println("方法的重载"); } public void cat(int a,int b){ System.out.println("方法的重载,方法中参数的个数"); } public void cat(String c,int d){ System.out.println("方法的重载,方法中参数的类型不一样"); } public void cat(int e,String f){ System.out.println("方法的重载,方法中参数顺序不一样"); } public static void main(String[] args) { // TODO Auto-generated method stub } }
package com.cnblogs; public class Sun { public static void main(String[] args) { // TODO Auto-generated method stub int a=32; Integer i=new Integer(a); System.out.println("手动进行装箱"+i); int a2=i.intValue();//此方法的做用是以int值返回此Integer对象 System.out.println("手动进行拆箱"+a2); int a4=54; Integer i4=a4;//自动装箱 System.out.println("自动进行装箱"+i4); } }
对于面向对象编程来讲,抽象是它的一大特征之一。在Java中,能够经过两种形式来体现OOP的抽象:接口和抽象类。学习
abstract void fun();
[public] interface InterfaceName {` }
接口中能够含有 变量和方法。可是要注意,接口中的变量会被隐式地指定为public static final变量(而且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其余关键字,好比private、protected、static、 final等会报编译错误),而且接口中全部的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。从这里能够隐约看出接口和抽象类的区别,接口是一种极度抽象的类型,它比抽象类更加“抽象”,而且通常状况下不在接口中定义变量。this
抽象类和接口的区别
1.语法层面上的区别设计
1)抽象类能够提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2)抽象类中的成员变量能够是各类类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类能够有静态代码块和静态方法;
4)一个类只能继承一个抽象类,而一个类却能够实现多个接口。
2.设计层面上的区别
1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类总体进行抽象,包括属性、行为,可是接口倒是对类局部(行为)进行抽象。举个简单的例子,飞机和鸟是不一样类的事物,可是它们都有一个共性,就是都会飞。那么在设计的时候,能够将飞机设计为一个类Airplane,将鸟设计为一个类Bird,可是不能将 飞行 这个特性也设计为类,所以它只是一个行为特性,并非对一类事物的抽象描述。此时能够将 飞行 设计为一个接口Fly,包含方法fly( ),而后Airplane和Bird分别根据本身的须要实现Fly这个接口。而后至于有不一样种类的飞机,好比战斗机、民用飞机等直接继承Airplane便可,对于鸟也是相似的,不一样种类的鸟直接继承Bird类便可。从这里能够看出,继承是一个 "是否是"的关系,而 接口 实现则是 "有没有"的关系。若是一个类继承了某个抽象类,则子类一定是抽象类的种类,而接口实现则是有没有、具有不具有的关系,好比鸟是否能飞(或者是否具有飞行这个特色),能飞行则能够实现这个接口,不能飞行就不实现这个接口。
2)设计层面不一样,抽象类做为不少子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。什么是模板式设计?最简单例子,你们都用过ppt里面的模板,若是用模板A设计了ppt B和ppt C,ppt B和ppt C公共的部分就是模板A了,若是它们的公共部分须要改动,则只须要改动模板A就能够了,不须要从新对ppt B和ppt C进行改动。而辐射式设计,好比某个电梯都装了某种报警器,一旦要更新报警器,就必须所有更新。也就是说对于抽象类,若是须要添加新的方法,能够直接在抽象类中添加具体的实现,子类能够不进行变动;而对于接口则不行,若是接口进行了变动,则全部实现这个接口的类都必须进行相应的改动。
多态存在的三个必要条件1、要有继承;2、要有重写;3、父类引用指向子类对象。
Java中多态的分类:
在java中,多态大体能够分为如下几种状况:
1)person为父类,student为子类。那么:person p=new student();
2)fliable为接口,bird为实现接口的类,那么:fliable f=new bird();
3)fliable为抽象类,bird为继承fliable的类,那么:fliablef=new bird();
多态时须要说明p声明为父类的引用,但他实际为子类引用。可是他只能调用父类中的方法。若是子类中的方法覆盖了父类方法,那么将调用父类方法(虚方法调用)。接口多态也是一样的,也许你会问,若是f要调用本身的方法,那岂不是出错了?其实这里也是方法的覆盖,由于实现接口的子类确定会实现接口中的方法, 因此此种状况下调用的是bird中的方法。可是若是bird有一个方法在接口中没有定义,那么f不能调用。