类只能用== default==(什么也不写), public来修饰。 对与用 default修饰的类只能在同一包下进行访问
方法的访问修饰符有 private,== default==, protected和public。
private修饰的方法只能在本类中访问default只能在本包中访问。在同一包中的子类将继承该方法 //在com.resource中定义 package com.resource; public class Demo1 { public String chaPublic = "Public"; protected String chaProtected = "Protected"; private String chaPrivate = "Private"; } public class Demo2 { public static void main(String[] args){ Demo1 sv = new Demo1(); System.out.println(sv.chaPublic ); // 无报错 System.out.println(sv.chaProtected ); // 无报错 System.out.println(sv.chaPrivate); // The field SomeVar.varPrivate is not visible } } //------------------------------- package com.run; import com.resource.Demo1; public class RunDemo { public static void main(String[] args){ Demo1 sv = new Demo1(); System.out.println(sv.chaPublic ); // 无报错 System.out.println(sv.chaProtected ); // The field SomeVar.varProtected is not visible System.out.println(sv.chaPrivate); // The field SomeVar.varPrivate is not visible } }除了private以外的所以属性与方法都是可见的,即public,protect,friendly都是可见的。 举例如下
class Dad{ public String Pub = "Public"; protected String Pro = "Protected"; private String Pri = "Private"; } class Son extends Dad{ public void setName(String name_){ this.Pri = "new private"; // The field FatherPlane.namePri is not visible } } public class RunPlane{ public static void main(String args[]) { Son sp = new Son(); System.out.println(sp.Pub); // 无报错 System.out.println(sp.Pro); // 无报错 System.out.println(sp.Pri); // The field FatherPlane.namePri is not visible } }重载的含义及功能:在java中,如果有功能类似,可以使用相同的名字来定义不同功能或方法
举例 用方法重载实现一个简单的
package cn.itcast.day04.demo04; public class Demo01MethodOverload{ System.out.println(sum(10, 20));//30 System.out.println(sum(10, 20,30));//30 System.out.println(sum(10, 20,30,40));//30*/ ;//这里不管对的上哪一个同名方法的参数数量都可以 } public static int sum(int a,int b){ System.out.println("有2个参数的方法执行!"); return a+b; } public static int sum(int a,int b,int c){ System.out.println("有3个参数的方法执行!"); return a+b+c; } public static int sum(int a,int b,int c,int d){ System.out.println("有4个参数的方法执行!"); return a+b+c+d; }理解 如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法。 可以达到不更改父类的方法便创建了子类的一个方法。使程序更加的安全。
//父类 class Parent { public int getScore(){ return 3; } public String getCountryName(){ return “China”; } } //子类 class Son extends Parent { public int getScore(){ return 4; } } public class RunSon{ public static void main(String args[]){ Son s = new Son(); System.out.println(s.getScore()); System.out.println(s.getCountryName()); } }