面向对象概念
面向对象:把事情交给对象完成
面向过程:自己完成所有事情
类
模版:描述具有共性的一类事物
属性用
变量
来描述动态的行为用
函数
描述
对象
类的具体化
函数/方法
函数就是功能实现,它遵循了特定语法,一段具有特定功能代码。
例子
下面创建一个Student
类
// Student
package com.zhongxin.oject;
public class Student {
// javaBean POJO 没有main方法
// 成员变量/成员属性 类中方法外
int age = 10;
String name = "张三";
public void eat() {
// 方法体 具体完成的功能
System.out.println("学生吃");
}
public void sleep() {
System.out.println("学生睡觉");
}
}
// ObjectDemo
package com.zhongxin.oject;
public class ObjectDemo {
public static void main(String[] args) {
// 创建Student类的对象
// 类名 对象名 = new 类名();
Student s1 = new Student();
System.out.println(s1.age);
System.out.println(s1.name);
s1.eat();
s1.sleep();
}
}
成员变量/成员属性
POJO
POJO:Plain Ordinary Java Object 简单普通的java对象
没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
JavaBean
JavaBean 是一种JAVA语言写成的
可重用组件
。JavaBean符合一定规范编写的Java类,不是一种技术,而是一种规范。
大家针对这种规范,总结了很多开发技巧、工具函数。
符合这种规范的类,可以被其它的程序员或者框架使用。
它的方法命名,构造及行为必须符合特定的约定:所有属性为
private
。
在类中,方法外的变量
成员变量是属于对象的,跟着对象走
int age = 10;
String name = "张三";
POJO和JavaBean的区别
POJO严格地遵守简单对象的概念,而一些JavaBean中往往会封装一些简单逻辑。
函数
方法体:具体完成的功能
public void eat() {
System.out.println("学生吃");
}
对于一个加法来说,需要给两个参数,并将需要返回一个值。
public int add(int a, int b) {
return a + b;
}
package com.zhongxin.oject;
public class ObjectDemo1 {
public static void main(String[] args) {
Student s1 = new Student();
int a = 1;
int b = 2;
int sum = s1.add(a, b);
System.out.println(sum);
}
}
构造函数
无参构造
有参构造,参数一般和属性一致
如果在类中定义了任意构造方法,那么java不再提供默认空参构造方法
package com.zhongxin.oject;
public class Phone {
int size;
String brand;
String color;
public Phone() {
}
public Phone(int s, String b, String c) {
size = s;
brand = b;
color = c;
}
}
使用
package com.zhongxin.oject;
public class ObjectDemo2 {
public static void main(String[] args) {
Phone a = new Phone();
System.out.println(a.size);
System.out.println(a.brand);
System.out.println(a.color);
Phone p = new Phone(10, "apple", "红");
System.out.println(p.size);
System.out.println(p.brand);
System.out.println(p.color);
}
}
输出内容
0
null
null
10
apple
红
将构造方法的入参和成员变量同名
public Phone(int size, String brand, String color) {
this.size = size;
this.brand = brand;
this.color = color;
}
成员变量和局部变量的区别
局部变量的特点
定义在
函数体
内定义在函数参数列表里
代码块
{}
中
全局变量的特点
定义在
类体
内在函数外
在代码块外
生命周期(作用域)
局部变量:出了包含他的
{}
就死亡全局变量:对象不消亡就一直存在