------- android培训、java培训、期待与您交流! ----------
1、继承
(1)在使用继承时应注意,子类是不能直接访问父类中的私有成员变量,子类可以调用父类的非私有方法,但是不能直接调用父类中的私有成员。
(2)子类对象的实例化过程:
先调用父类构造方法————>再调用子类构造方法。
(3)方法的覆写
在继承关系中也存在方法覆写的概念,但被子类覆写的方法不能比父类方法更加严格的访问权限。
class Person
{
void print()//属于默认访问即,default访问权限
{
System.out.print("父类");
]
}
class Student extends Person
{
public void print()//扩大了访问权限
{
System.out.print("子类继承后覆写父类方法");
}
}
(1)使用final声明的类不能有子类。
(2)使用final声明的放安防不能被子类所覆写。
(3)使用final声明的变量即成为常量 常量不可以修改。
3、为什么在进行字符串判断时要把字符串常量写在前面?
if("aa".equals(className))
{
f = new A();
}
//不写成下面这一种
if(className.equals("aa"))
{
f = new A();
}
//主要原因就是为了避免空指针异常
4、匿名内部类
interface A
{
public void print();//接口抽象方法
}
class B
{
public void fun()
{
this.test(new A()//匿名内部类
{
public void print()
{
System.out.print("实现接口方法");
}
})
}
public void test(A a)
{
a.print();//调用接口方法
}
}
以上程序中,A是接口,接口本身是不能直接进行实例化,所以在接口实例化后面要加一个{},用于实现接口中的抽象方法。
5、异常捕获
throw和throws的综合应用:
class Math
{
public int div(int i,int j) throws Exception//方法可以不处理异常
{
System.out.print("开始计算");
int temp = 0;
try
{
temp = i/j;
}catch (Exception e)
{
throw e;//捕获异常,把异常交给被调用处
}finally
{
System.out.print("计算结束");
}
}
}
public class Main
{
public static void main(String[] args)
{
Math m = new Math();
int result = m.div(10,0);
try
{
System.out.print(result);
}catch (Exception e)
{
System.out.println("异常"+e);
}
}
}
自定义异常类:
public class Main
{
public static void main(String[] args)
{
try
{
throw new MyException("自定义异常。");
}catch (Exception e)
{
System.out.println(e);
}
}
}
class MyException extends Exception
{
public MyException(String msg)
{
super(msg);
}
}
8、包
(1)编译程序时若想生成包名:javac -d. Test.java。
-d:表示生成目录。
.:表示在当前所在文件夹中生成。
(2)jar命令的使用
jar命令参数:
c:创建新的文档。
V:生成详细的输出信息。
F:指定存档的文件名。
例如:有编译好的类:com/zlf/demo/Hello.class.可以将其进行打包。
jar -cvf my.jar com。这样就将上面的com/....等打包成my.jar包了。将其设置在classpath中,就可以调用了。