java自学教程-面向对象

面向对象

java面向对象的设计中有三大特性:

  • 封装性:程序内部的处理结构对外不可见(结构内部不可见、实现结构不可见)
  1. 实现结构不可见:不同的层之间进行处理的时候可以完全不知道具体的实现细节;
  2. 内部结构不可见: 内部的相关的核心定义,外部 无法直接访问,这与访问权限相关。
  • 继承性:在先人的基础上继续发展,就好比如果参考进化论,每一代都要比上一代要强。利用击沉给的结构划分出不同的类关系,同时保证一些公共的特征存留下来。
  • 多态性:多态是一种不确定的执行模式,同样的一个功能不同的人干,会有不同的方法,但是最终的目的都是在解决核心的问题;

在每一个类之中都会有相关的属性和行为(方法),例如:每一个人都有姓名、年龄、等属性,这些都可以详细地定位到不同的人特点。所谓的行为描述的就是类的功能,例如汽车可以跑,描述的是类的功能,所有的对象都可以去调用类中定义的功能。
根据以上的分析可以得出如下的两条重要设计结论:

  1. 在进行面向对象设计之中一定要先进行类结构的定义,而后才可以拥有具体的对象,对象时可以直接使用的操作;
  2. 一个类可以产生多个对象,不同的对象拥有各自不同的特点(属性),但是所有的对象都拥有相同的功能(方法)。

专业描述:类是对象共性的集合,而对象时类的实例,类必须依靠对象实例才可以使用。

简单java类

  • 简单java类指的是一个类之中主要由属性以及setter、getter方法所组成的类,这个类不牵扯到各种复杂的运算逻辑,仅仅是进行相关数据的存储,同时这种类一般都有明确的实物类型,例如:定义一个描述部门的信息类,定义一个描述雇员的信息类。
  • 要求
  1. 类名称一定要有意义
  2. 类之中所有的属性都必须使用private封装
  3. 如果要进行属性的设置或者是修改,则一定要通过setter方法完成,而属性的获取要通过getter;
  4. 对象中的所有信息不允许直接在类中使用“System.out.println()”输出,所有的输出内容一定要返回给被调用处输出处理
  5. 类之中可以定义若干个构造方法,但是一定要提供有一个无参构造方法(需要通过反射机制研究)
public class Dept(){
	private long DeptNo;
	private String name;
	private double avg;
	public Dept(){}
	public Dept(long DeptNo,String name,double avg){
	this.DeptNo = DeptNo;
	this.name = name;
	this.avg = avg;
	}
	public long getDeptNo(){
		return this.DeptNo;
	}
	public String getname(){
		return this.name;
	}
	public double getavg(){
		return this.avg;
	}
	public void setDeptNo(long DeptNo){
		this.DeptNo = DeptNo;
	}
	public void setname(String name){
		this.name = name;
	}
	public void setavg(double avg){
		this.avg= avg;
	}
	public void getInfo(){
		System.out.println("部门编号:"+this.DeptNo+"部门名字:"+this.name+"部门平均分:"+this.avg);
	}
}

public class Main(){
	public static void main(String[] Args){
		Dept d = new Dept(10,"财务部",1.2);
		d.getInfo();
	}
}

错误: 在类 Dept 中找不到 main(String[]) 方法
需要新建项目,导入jdk包。

  • 当加入逻辑业务时,此时就不是简单java类。

static关键字

  • static在实际开发中,可以定义成员属性、类中的普通方法、定义类(需要结合内部类的结构进行使用)

static属性

  • 对于公共属性、在Java中就建议使用static关键字来进行定义。
    在这里插入图片描述
    此时类中出现的pub属性由于使用static关键字进行了定义,这个时候该属性就成为了一个公共属性、另外,每一个实例化对象拥有各自的堆内存空间,但是却可以拥有同一块公共数据区的使用权限,那么如果一个对象改变了公共区该属性值,那么其他对象对应的内容也都将被同时修改,所以static就非常适合于进行公共属性的定义。
  • static属性可以直接通过类名进行调用,不需要经过实例后的对象调用。
  • 可以用来统计新建对象的个数

static方法

  • 最大的特点是:可以在没有实例化的时候,直接用类名调用方法
  • 需要注意的是:
  1. static方法只能够调用static方法和static属性(因为其他属性和方法需要实例化之后才能使用,而static方法不用。所以static中如果出现了其他属性,那么在未实例化就调用的时候,就出错了)
  2. 非static方法可以调用static方法及属性,也能够调用非static方法及属性
  • 普通块
  • 构造块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值