JAVA类
JAVA中类名的首字线大写
一个完整的类如下:
package 包名:
class 类名 extends 父类 implements 接口名{
成员变量:
构造方法:
成员方法:
}
成员方法的定义
public 返回数据类型 方法名 (参数列表){
语句;//方法(函数)主体
}
1 public class day02 { 2 public static void main(String []args) { 3 //创建了一个Mymath的对象 4 Mymath mymath1=new Mymath(); 5 //调用mymath类里面的speack方法 6 mymath1.speack(); 7 //调用可以传入参数的计算方法 8 mymath1.jiSuan(10); 9 //调用计算两个数和的方法 10 mymath1.add(10, 10); 11 } 12 } 13 14 15 class Mymath{ 16 //以下我们称之为成员变量或者叫成员属性 17 int age; 18 String nameString; 19 String colorString; 20 //没有返回数就用void,请注意:方法名的首字母是小写的 21 //以下就是成员方法 22 public void speack() { 23 System.out.println("我是一个好人"); 24 } 25 //带参数的成员方法 26 public void jiSuan(int n) { 27 int a=0; 28 for (int i = 0; i <=n; i++) { 29 a=a+i; 30 } 31 System.out.println("从0加到"+n+"结果是:"+a); 32 } 33 //计算两个数的和的方法 34 public void add(int num1,int num2) { 35 int rue=0; 36 rue=num1+num2; 37 System.out.println(num1+"+"+num2+"="+rue); 38 } 39 }
类的成员方法,构造方法,成员变量
1 public class day02 { 2 public static void main(String []args) { 3 //创建一个computer的对象 4 Computer c1=new Computer(); 5 //创建了一个Mymath的对象 6 Mymath mymath1=new Mymath(c1,23,"测试","红色"); 7 //调用mymath类里面的speack方法 8 mymath1.speack(); 9 //调用可以传入参数的计算方法 10 mymath1.jiSuan(10); 11 //调用计算两个数和的方法 12 mymath1.add(10, 10); 13 //调用有返回类型的方法 14 //在调用某个成员方法的时候,给出的具体数值的个数和类型要相匹配 15 System.out.println("P1="+mymath1.add2(30, 3.1f)); 16 //构造函数的调用方法 17 System.out.println(mymath1.teall); 18 19 mymath1.computer.off(); 20 } 21 } 22 23 24 class Mymath{ 25 //以下我们称之为成员变量或者叫成员属性 26 int age; 27 String nameString; 28 String colorString; 29 Computer computer; 30 static int teall=0; 31 //以下是构造方法 32 public Mymath(Computer computer,int age,String nameString,String colorString) { 33 this.age=age; 34 this.nameString=nameString; 35 this.colorString=colorString; 36 this.computer=computer; 37 } 38 //没有返回数就用void,请注意:方法名的首字母是小写的 39 //以下是成员方法 40 public void speack() { 41 System.out.println("我是一个好人"); 42 } 43 //带参数的成员方法 44 public void jiSuan(int n) { 45 //int a=0; 46 for (int i = 0; i <=n; i++) { 47 teall=teall+i; 48 } 49 System.out.println("从0加到"+n+"结果是:"+teall); 50 } 51 //计算两个数的和的成员方法 52 public void add(int num1,int num2) { 53 int rue=0; 54 rue=num1+num2; 55 System.out.println(num1+"+"+num2+"="+rue); 56 } 57 //计算两个数的和,并且反结果返回给调用它的函数 58 //带返回的值,返回的是什么类型的值就写什么类型的值 59 public float add2(int num1,float num2) { 60 return num1+num2; 61 } 62 } 63 class Computer{ 64 int money; 65 String nameString; 66 String pipaiString; 67 String typeString; 68 69 public void off(){ 70 System.out.println("打开"); 71 } 72 }
类的多态,继承
1 public class day05 { 2 public static void main(String []args) { 3 /*Ccat ccat=new Ccat(); 4 ccat.cry(); 5 Ddog ddog=new Ddog(); 6 ddog.cry();*/ 7 //多态 8 /*Animal animal=new Ccat(); 9 animal.cry(); 10 animal=new Ddog(); 11 animal.cry()/*/ 12 Master master=new Master(); 13 master.feed(new Dog(), new Bone(),new Wanj()); 14 master.feed(new Ccat(), new Fish(),new Wanj()); 15 } 16 } 17 //定义一个人类 18 class Master 19 { 20 public void feed(Animal an,Food fn,Wanj wn) { 21 an.cry(); 22 fn.showName(); 23 wn.showNnme(); 24 } 25 } 26 //定义一个玩具类 27 class Wanj 28 { 29 String nameString; 30 public void showNnme() { 31 System.out.println("我不知道是什么玩具"); 32 33 } 34 } 35 //定义一个食物父类 36 class Food 37 { 38 String nameString; 39 public void showName() { 40 System.out.println("我不知道是什么食物"); 41 } 42 } 43 //这是食物鱼 44 class Fish extends Food{ 45 public void showName() { 46 System.out.println("这是吃的鱼"); 47 } 48 } 49 //这是食物骨头 50 class Bone extends Food { 51 public void showName() { 52 System.out.println("这是吃的骨头"); 53 } 54 } 55 //动物类 56 class Aanimal 57 { 58 private String nameString; 59 private int age; 60 public String getNameString() { 61 return nameString; 62 } 63 public void setNameString(String nameString) { 64 this.nameString = nameString; 65 } 66 public int getAge() { 67 return age; 68 } 69 public void setAge(int age) { 70 this.age = age; 71 } 72 //动物叫 73 public void cry() { 74 System.out.println("不知道怎么叫"); 75 76 } 77 public void eat() { 78 System.out.println("不知道吃什么"); 79 } 80 } 81 //继承了父类并重写或者叫覆盖了成员方法 82 class Ccat extends Animal 83 { 84 public void cry() { 85 System.out.println("猫猫叫"); 86 } 87 public void eat() { 88 System.out.println("猫爱吃鱼"); 89 } 90 } 91 92 class Ddog extends Animal 93 { 94 public void cry() { 95 System.out.println("狗狗叫"); 96 } 97 public void eat() { 98 System.out.println("狗受吃骨头"); 99 } 100 }
抽象类
1 public class day06 { 2 public static void main(String []args) { 3 Doog dog=new Doog(); 4 dog.cry(); 5 } 6 } 7 //当你不知道父类的方法不知道怎么写的时候就用抽象类 8 //在类的前面加上关键字,abstract 9 //初始化构造方法,必须加上成员参数 10 //成员方法加上括号,里面可以放参数,做为接口来用 11 //下面就是抽象类的写法 12 abstract class Naimal 13 { 14 String nameString; 15 int age; 16 //这是抽象类方法 17 abstract public void cry(); 18 } 19 //当一个类继承的父类是抽象类,必须把抽象类中的所有抽象方法全部实现 20 //以下继承了抽象类Naimal所以必须实现抽象类中的所有方法 21 class Doog extends Naimal{ 22 //以下实例化了Naimal类中的抽象方法cry 23 public void cry() { 24 System.out.println("我不知道怎么叫"); 25 } 26 }
接口
1 /** 2 * 类里面: 接口的申明,接口的方法 3 */ 4 package com.test1; 5 6 public class day07 { 7 public static void main(String []args) { 8 //定义一台电脑 9 Computer computer=new Computer(); 10 //定义一台相机 11 Camera camera=new Camera(); 12 //定义一部手机 13 Phone phone =new Phone(); 14 //把USB端口给手机和相机用 15 computer.useUSB(phone); 16 computer.useUSB(camera); 17 18 } 19 } 20 //定义一个USB接口,接口名首字母大写 21 //interface是定义接口的意思 22 //一个接口不能继承其它类,但是可以继承其它接口 23 interface Usb{ 24 //申明两个方法 25 //接口中的变量初始货必须给值 26 int a=1; 27 public void start(); 28 public void stop(); 29 } 30 //定义一个相机类,并实现Usb接口 31 //一个重要原则:当一个类实现了一个接口,就要把这个类的所有方法全部实现 32 //implements 是实现接口的意思 33 class Camera implements Usb{ 34 //实现Usb中start方法 35 public void start() { 36 System.out.println("我是相机,开始工作"); 37 } 38 //实现USB中stop方法 39 public void stop() { 40 System.out.println("我是相机,停止工作"); 41 } 42 } 43 //编写一个手机类并且继承Usb接口,并把USB里面的方法全部实现 44 class Phone implements Usb{ 45 //实现USB中start方法 46 public void start() { 47 System.out.println("我是手机,我开始工作了"); 48 } 49 //实现USB中stop方法 50 public void stop() { 51 System.out.println("我是手机,我停止工作了"); 52 } 53 } 54 //定义一个电脑类并开始使用 55 //定义类名时首字母大写 56 class Computer{ 57 public void useUSB(Usb usb) { 58 usb.start(); 59 usb.stop(); 60 } 61 }
把端口应用到类中,通过implements实现
1 /** 2 * 继承中端口的应用 3 */ 4 package com.test1; 5 6 7 public class day08 { 8 public static void main(String []args) { 9 Xmonkey xmonkey=new Xmonkey(); 10 xmonkey.Fly(); 11 xmonkey.Dly(15, 10); 12 } 13 } 14 //定义了一个猴子类 15 class Monkey{ 16 String namString; 17 //跳 18 public void jump() { 19 System.out.println("猴子会跳"); 20 } 21 } 22 23 24 //一中小猴子继承老猴子的功能 用implements继承了鸟和鱼的方法,并实现功能 25 class Xmonkey extends Monkey implements Ber,Feny{ 26 27 //实现了鸟的功能 28 @Override 29 public void Fly() { 30 // TODO Auto-generated method stub 31 System.out.println("我会飞"); 32 } 33 //实现在鱼的功能并会计算 34 @Override 35 public void Dly(int a,int b) { 36 // TODO Auto-generated method stub 37 System.out.println("我会跳水"); 38 39 System.out.println(a+b); 40 41 } 42 43 } 44 45 //定义一只鸟的端口,并且这只鸟有一会飞的FLY方法 46 interface Ber{ 47 public void Fly(); 48 } 49 //定义一只鱼的端口,并且这只鱼有一个会游Dly的方法 50 interface Feny{ 51 public void Dly(int a,int b); 52 }
final修饰的用法,能让成员方法不被覆盖,成员变量不被改变,类不能被继承
1 /** 2 * 继承中端口的应用 3 */ 4 package com.test1; 5 6 7 public class day08 { 8 public static void main(String []args) { 9 Xmonkey xmonkey=new Xmonkey(); 10 xmonkey.Fly(); 11 xmonkey.Dly(15, 10); 12 xmonkey.jump(); 13 Kan kan=new Kan(); 14 kan.don(); 15 } 16 } 17 //定义了一个猴子类 18 class Monkey{ 19 String namString; 20 //跳 21 public void jump() { 22 System.out.println("猴子会跳"); 23 } 24 } 25 26 27 //一中小猴子继承老猴子的功能 用implements继承了鸟和鱼的方法,并实现功能 28 class Xmonkey extends Monkey implements Ber,Feny{ 29 30 //实现了鸟的功能 31 @Override 32 public void Fly() { 33 // TODO Auto-generated method stub 34 System.out.println("我会飞"); 35 } 36 //实现在鱼的功能并会计算 37 @Override 38 public void Dly(int a,int b) { 39 // TODO Auto-generated method stub 40 System.out.println("我会跳水"); 41 42 System.out.println(a+b); 43 44 } 45 46 } 47 //定义一个Pan,并把 方法用final修饰一下,final可以让变量和成员方法不能被修改和覆盖 48 class Pan 49 { 50 final int a=0; 51 final public void jon() { 52 System.out.println("我会发送信息"); 53 } 54 } 55 //新建一个类,继承pan类,查看fianl修饰过的方法能改变吗,被FINAL修饰过的类也不能被继承 56 class Kan extends Pan 57 { 58 59 public void don() 60 { 61 //a++; //这个地方我们已经看出报错,说明FINAL修饰起作用了 62 System.out.println("a的值是:"+a); 63 } 64 /*public void jon() //这个地方法继承PAN类后重写JON方法就报错了,说明final修饰起作用了 65 { 66 System.out.println("看方法能不能被重写"); 67 }*/ 68 } 69 70 //定义一只鸟的端口,并且这只鸟有一会飞的FLY方法 71 interface Ber{ 72 public void Fly(); 73 } 74 //定义一只鱼的端口,并且这只鱼有一个会游Dly的方法 75 interface Feny{ 76 public void Dly(int a,int b); 77 }
浙公网安备 33010602011771号