---恢复内容开始---
一.Java 封装性的使用
1.封装性产生的目的
保护某些属性和方法不被外界所看到
2.封装的实现
为属性和方法进行封装是通过private关键字进行声明的
既然用private进行了声明,那表明外界不能对封装的属性和方法进行使用,那么如果外界想使用封装的方法和属性又该u怎么办呢?
通过set 和 get 方法进行外部访问
下面看一个例子(红色覆盖部分为set 和 get 方法)
package ClassDemo1; class Person{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if(age>0&&age<200) this.age = age; } public void tell() { System.out.println("姓名"+getName()+" "+"年龄"+getAge()); } } public clas
s ClassDemo1 { public static void main(String[] args) { // TODO Auto-generated method stub /* 创建对象*/ Person per; //声明 per=new Person(); //实例化操作、 //Person per=new Person(); 声明并实例化 per.setAge(10);// set为 设置 per.setName("小黎"); per.tell(); } }
二.匿名对象的使用
首先,何为匿名对象?????
没有名字的对象那就叫它匿名对象,个人觉得匿名对象的使用很局限。只有当程序中只使用一次该对象时,我们可以使用匿名对象。
就在上面的例子上进行修改,用代码一遍带过
public class ClassDemo1 { public static void main(String[] args) { // TODO Auto-generated method stub /* 创建对象 Person per; //声明 per=new Person(); //实例化操作、 //Person per=new Person(); 声明并实例化 per.setAge(10);// set为 设置 per.setName("小黎"); per.tell(); */ // 使用匿名对象 new Person().setAge(2); new Person().tell(); } }
三.构造方法
1.格式:
访问修饰符 类名称(){
程序语句
}
2.注意点
(1)构造方法名称必须与类名相同
(2)构造方法没返回值(切记)
3.构造方法主要是为类中的属性初始化(即通过传递参数进行赋值)
4.每个类在实例化之后都会调用构造方法,如果没有构造方法,程序会在编译时候创建一个无参的什么都不做的构造方法
四.继承
1.java中只允许单继承
举个例子:就好像每个人只有一个亲生父亲,不能有多个亲生父亲的意思。。貌似就这么理解,但可进行多层继承(下面的红色注释部分是错误的)
class Person{
int age;
public void tell() {
System.out.println("姓名"+getName()+" "+"年龄"+getAge());
}
}
class Student extends Person{
public void say()
{
System.out.println(age);
}
}
class PerStudent extends Student,Person{
}
五.子类对象实例化过程
插入运行截图
可以看到通过子类的实例化,首先调用的父类的构造方法,继而调用子类的构造方法
六.方法的重写
在继承中,也存在重写的概念,其实就是子类定义了和父类同名的方法,,,,下面来看看重写的定义
1.定义
方法名称相同 返回值类型相同 参数相同
2.重写限制
被子类重写的方法不能拥有比父类更加的严格访问权限。。怎么理解这句话呢???那我们先来看看几个访问权限
private<default<public
private 只允许在当前类中进行访问
default 这个关键字你一定感到很陌生吧,其实我们很早就接触它了。。当我们定义一个方法前面什么都没有的时候,默认就是default,是不是很意外恒惊喜。。它的访问权限是在同一个包下
public 允许在同一个工程下访问
也就是说,如果父类的方法是 default 那么子类重写这个方法不能用private,因为不能拥有比父类更加严格的访问权限,但可以相同
下面对重写和重载进行比较
注:一个java新手记的一点Java笔记,仅供参考,如有错误请下方留言,谢谢