Azure╰

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

---恢复内容开始---

一.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笔记,仅供参考,如有错误请下方留言,谢谢

 

posted on 2018-11-17 20:38  Azure╰  阅读(188)  评论(0编辑  收藏  举报