JAVA面向对象

面向对象的简单的例子

public class Cat {
	/**
	 * 身长
	 */
	int size;
	/**
	 * 颜色
	 */
	String coulour;
	/**
	 * 吃什么
	 */
	public static void eat() {
		System.out.println("吃罐头");
	}
}

2、成员变量与局部变量

成员变量 在类中定义,用来描述对象将来要有什么 在类中定义,在方法中临时保存 没有赋值,为初始值 与局部变量的区别

1作用域不同 -局部变量的作用域仅限于定义它的方法 -成员变量的作用域在整个类内部都是可见的

2初始值不同 -成员变量有默认的初始值 -局部变量没有默认的初始值,必须自行设定初始值

3同名变量 -在同一个方法中不允许有同名的局部变量 -在不同的方法中可以有同名的而局部变量

4存储位置不同 -成员变量在对象创建后存储在堆中,对象回收后消失 -局部变量是在方法被调用时存在于栈中,方法调用结束,从栈中消失

5生命周期不同 -随着对象的创建而创建,对象回收后消失 -随着方法的调用而创建,随着方法执行结束而消失

3、方法的调用

     /**
	 * 静态方法
	 */
	public static void sleep() {
		System.out.println("睡觉");
	}
		public static void eat() {
		System.out.println("吃饭");
	}	
		public void drink() {
		System.out.println("喝水");
	}

静态方法可以静态方法可以用类名.方法名的方式调用用类名.方法名的方式调用,但是不能通过该静态方法可以用类名.方法名的方式调用,但是不能通过该方式调用非静态方法,可以通过类的实例化对

4、匿名对象与引用对象

匿名对象

没有指向,用完之后立刻消失

引用对象

person04 引用类型变量 引用了内存中的一个对象

可能会多次调用,不会立即删除

5、访问修饰符

访问修饰符有   public    protected     default     private

public : 对所有类可见 使用对象:类、接口、变量、方法

protected : 对同一个包内的类和所有子类可见。使用对象:变量、方法。 注意:不能用来修饰类(外部类)

default: 在同一个包内可见,不适用任何修饰符,使用对象:类、接口、变量、方法

private :只在同一个类内可见。使用对象:方法、变量。 注意:不能用来修饰类(外部类)

7、封装

减少耦合性,类内部的结构可以修改,可以控制变量成员,可以隐藏信息

8、构造方法

方法名与类名相同,方法体没有返回值,但是在声明的时候却不需要使用void修饰的方法称之为构造方法

没有参数的方法称之为无参构造方法

代码中没有编写过构造方法,jvm在执行对象初始化的帮助程序追加无参构造方法

一个类中,既没有无参构造方法也没有有参构造方法的时候jvm会追加一个无参构造方法

一个类中,存在有参构造方法没有编写无参构造方法的时候jvm不会追加无参构造方法

不论任何情况下一定要手写一个无参构造方法

在类的实例化过程中被调用,实例化几次调用几次

无参构造方法的表示:
public class Person01 {
	public Person01() {		
	}
}
全参构造方法的表示方法:
public class Person02 {
//昵称
	private String nickname;
//性别 1男0女
	private int gender;
//年龄
	private int age;
	public String getNickname() {
		return nickname;
	}
	public void setNickname(String nickname) {
		this.nickname = nickname;
	}
	public int getGender() {
		return gender;
	}
	public void setGender(int gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	/**
	 * 全参构造方法
	 * @param nickname 	昵称
	 * @param gender	性别
	 * @param age		年龄
	 */
	public Person02(String nickname,int gender,int age) {
		this.nickname = nickname;
		this.gender = gender;
		this.age = age;
	}
}

9、代码块的生成

花括号包裹起来的我们称之为代码块或代码段

只有一对花括号包裹起来的我们称之为构造代码块或代码段

构造代码块与构造方法一样都是在类被实例化的过程中被调用的,并且构造代码块在构造方法之前先执行

类每次被实例化的过程中都会调用构造代码块

	{
		System.out.println("构造代码块");
	}

10、类的继承

1、子类继承父类

public class Person {
	/**
	 * 昵称
	 */
	private String nickname;
	/**
	 * 性别,1→男   0→女
	 * 默认值为0,女
	 */
	private int gender;
	/**
	 * 年龄
	 */
	private int age;
	public Person() {
		super();

	}
	public Person(String nickname, int gender, int age) {
		super();
		this.nickname = nickname;
		this.gender = gender;
		this.age = age;
	}
	public String getNickname() {
		return nickname;
	}
	public void setNickname(String nickname) {
		this.nickname = nickname;
	}
	public int getGender() {
		return gender;
	}
	public void setGender(int gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}	
}

子父类关系

public class Person {
	public void eat() {
		System.out.println("吃");
	}
}
父类



12345    //父类Person子类Malepublic class Male extends Person
 {    public void work() {
        System.out.println("work");   
 }
}
子类

向上转型与向下转型

public class Person {
	public void eat() {
		System.out.println("吃");
	}
}
父类


public class Male extends Person {
	@Override
	public void eat() {
		System.out.println("吃核桃");
	}
	public void work() {
		System.out.println("work");
	}
}
子类

11、内部类与抽象类

内部类

public class Outer01 {
	public static class Inner01{
		public static void run() {
			System.out.println("run");
		}
	}
}

局部内部类

public class Outer05 {
	public static void innerRun() {
		class Inner01 {
			public static void run() {
				System.out.println("run");
			}
		}
		Inner01.run();
	}
}

匿名内部类

public class Outer09 {
	public void innerRun() {
	//Object()
		new Object() {
			public void run() {
				System.out.println("run");
			}
		}.run();
	}
}

抽象类

使用abstract修饰的类称之为抽象类

使用abstract修饰没有方法体的方法我们称之为抽象方法

具备抽象方法的类必须是抽象类

public abstract class Person {
	public abstract void eat() ;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值