面向对象

 

OOP

Oriented object program    面向对象编程

OOA

Oriented object analyze   面向对象分析

OOD

Oriented object design    面向对象设计

面向对象:

面向对象的特点:

1.是一种符合人们思考习惯的思想

2.可以将复杂的事情简单化

3.将程序员从执行者转换成了指挥者

4.完成需求时:①先要去找具有所需功能的对象来用 ②如果该对象不存在,那么创建一个具有所需功能的对象 简化开发并提高重用

面向对象的特征:1:封装   2:继承  3:多态

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:1.将变化隔离 2.便于使用 3.提高重要性 4.提高重要性。

封装原则:1.将不需要对外提供的内容都隐藏起来 2.把属性都隐藏,提供公共方法对其访问。

 

private (私有)  关键字(私有是封装的一种表现形式)

1.是一个权限修饰符。 2.用于修饰成员(成员变量和成员函数)3.被私有化的成员只在本类中有效

常用之一:将成员变量私有化,对外提供对应的set,get方法对其进行访问。提高对数据访问的安全性。

 

类:对现实事务的软件抽象。--> 对象:对象即是该类事物实实在在存在的个体

类的定义:1.生活中描述事物无非就是描述事物的属性和行为。2.java中用类class来描述事物:属性(对应类中的成员变量)行为(对应类中的成员函数)3.定义类其实在定义类中的成员(成员函数【方法】和成员变量【属性】)

public static void main(String[] args) {
//创建对象
//局部变量
		Person p = new Person();    //p是类类型变量,类类型变量指向对象。
//调用函数的方法
		p.run();
	}	
}
 class Person {
//成员变量==属性(property)==字段(filed)
		int height;
		int weight;
		int age;		
//定义函数
		public void run() {
			System.out.println(age + "--run.........");
		}
}

堆:数组和对象    栈:方法在这里

成员变量和局部变量的区别:

成员:1.成员变量定义在类中,在整个类中都可以被访问。2.成员变量随着对象的建立而建立,存在对象所在的内存中。3.成员变量有初始值

局部:1.局部变量只定义在局部范围内 (函数和语句)2.局部变量存在于栈内存中 3.作用范围结束,变量空间会自动释放 4.局部变量没有默认的初始值。

java VM调整堆大小

java -X  //查看java非标准输出帮助

java -Xmx100m //设置jvm的堆空间的最大值

java -Xmsm   //设置jvm的堆空间初始值

匿名对象

new Person().run();

//匿名对象-作为参数进行传递

匿名对象:

1.匿名对象是对象的简化形式。

2.匿名对象的两种使用方法:①对 对象方法仅进行一次调用的时候,如果对一个对象进行多个成员调用,必须给这个对象起名字。②匿名对象可以作为实际参数进行传递。

构造函数:

特点:1.函数名和类同名。2.不用定义返回值类型3.没有具体的返回值(创建之后肯定返回的该对象)4.如果类没有定义构造函数,jvm会分配一个空构造。如果类定义了构造函数,没有空构造。

作用:给对象进行初始化。

注意:默认构造函数的特点(无参)。多个构造函数是以重载的形式存在。

什么时候定义构造函数呢?

当分析事物时,这事物存在具备一定的特性或者行为,那么将这些内容定义在构造函数中。

①空构造

	public static void main(String[] args) {
		Dog d = new Dog();
		//设置属性调方法
		d.setColor("黄色");//调用setColor函数设置颜色	
		//获取颜色调方法
		System.out.println(d.getColor());
	}	
}
 class Dog {
	 private String color;
	 private int age;
	 
	 public Dog(){	 
	 }
	 //设置属性
	 public String getColor() {
		 return color;
	 }
	 //获取颜色函数
	 public void setColor(String c) {
		 color = c;
	 }
 }

 ②构造函数传一个参数

public static void main(String[] args) {
		Dog d1 = new Dog("白色");
		System.out.println(d1.getColor());
	}
}
 class Dog {
	 private String color;
	 private int age;	 
	 public Dog(String c) {
		 color = c;
	 }
	 public String getColor() {
		 return color;
	 }
	 //获取颜色函数
	 public void setColor(String c) {
		 color = c;
	 }
 }

三:

public static void main(String[] args) {
		Car c = new Car(4,"黑色");	
		System.out.println(c.getTires() + c.getColor());
	}
}
 class Car {
	 private String color;
	 private int tires;
	 public Car(int t,String c){	
		 tires = t;
		 color = c;
	 }		
	 public int getTires() {
		 return tires;
	 }
	 public void setTires(int tires) {
		 this.tires = tires;
	 }
	 public String getColor() {
		 return color;
	 }
	 public void setColor(String color) {
		 this.color = color;
	 }	 
 }

构造代码块:定义的是不同对象共性的初始化内容。

package com.test;

public class HelloWorld {
	public static void main(String[] args) {
		//Person p=new Person();	
		Person p1=new Person("李四");
		p1.speak();
	}
}
class Person{
	private String name;
	private int age;
	/*构造代码块
	作用:给对象进行初始化。
	对象一建立就运行,而且优先于构造函数执行。
	和构造函数的区别:
	构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化
	*/
	{
		System.out.println("Crying....");
	}
	public Person(){
		//System.out.println("name="+name+",age="+age);
	}
	public Person(String n) {
		name=n;
		//System.out.println("name="+name+",age="+age);
	}
	public void speak() {
		System.out.println("name="+name+",age="+age);
	}
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值