package cn.tedu.day05;
/**
面向对象
1定义:
1).首先根据客户的需求抽象出业务逻辑对象
2).然后对需求进行合理的分层
3).对应独立的业务模块
4).之后进行设计业务逻辑,利用封装,继承,多态,抽象的思想实现实际业务需求
5). 最后通过整合整个模块,达到高内聚,低耦合的效果,从而满足客户需求
局部变量和成员变量
- 1.定义位置:成员变量定义在类中,局部变量在方法中
- 2.作用域:成员变量作用在整个类中 局部变量只能作用在定义它的方法或者语句中使用
- 3.内存中:成员变量存储在堆内存中,并且在堆内存中自动赋予初值,局部变量存储在栈内存中,不会自动存储
- 4.生命周期:成员变量在对象创建的时候存储在堆内存中,在生命周期被回收的时候销毁,
-
局部变量在方法或者是语句中执行的时候被创建,方法或者是语句执行完之后被销毁
构造方法
用于给数据对象进行初始化
构造方法名必须与类名同名
构造方法没有返回值 但也不能写void
语法
【访问修饰符】 类名 ()
{
//构造方法体
}
this关键字用在方法体中用于指向调用该方法的当前对象, 那个对象调用方法,this就指向哪个方法。
继承:一个类只能继承一个父类,一个父类可以有多个子类。
重载是指一个类定义多个方法名相同但参数列表不同的方法,在编译时,根据参数的个数和类型来决定绑定那些方法
重写是指在类中定义和父类完全相同的方法,在程序运行时,根据对象的类型不同(而不是引用类型)而调用不同的版本
*/
public class ObjectDemo {
public static void main(String[] args) {
//创建学生对象
Student stu1=new Student();
stu1.name="优秀";
stu1.age=25;
stu1.gender='男';
stu1.score=99;
stu1.printStuInfo();
Student stu2=new Student();
stu2.name="菜鸡";
stu2.age=25;
stu2.gender='男';
stu2.score=99;
stu2.printStuInfo();
Person per1=new Person();
per1.name="鬼鬼";
per1.age=15;
per1.gender='女';
per1.eateat();
per1.eat();
phone n1=new phone();
n1.brand="苹果x";
n1.price=5400;
n1.color='红';
n1.call("韩红");
n1.call1();
}
}
package cn.tedu.day05;
/**
- 学生的实体类对象
- 类:包括 “成员变量”和“方法”的定义 “成员变量”用于描述该类型对象共同的数据结构
- 成员变量:1.数值类型:byte short int long float double 2.布尔类型:boolean 3.char型 4.引用类型
- */
public class Student {
String name;
int age;
char gender;
double score;
public void printStuInfo(){
System.out.println("------------");
System.out.println(“姓名”+name);
System.out.println(“年龄”+age);
System.out.println(“性别”+gender);
System.out.println(“成绩”+score);
}}
package cn.tedu.day05;
public class Person {
String name;
int age;
char gender;
public void eateat(){
System.out.println(“吃货------------”);
}
public void eat(){
System.out.println(“姓名”+name+",年龄"+age+",性别"+gender);
}
}
package cn.tedu.day05;
public class phone {
String brand;
int price;
char color;
public static void call(String name){
System.out.println(“给”+name+“打电话”);
}
public static void call1(){
System.out.println(“发短信”);
}
}
package cn.tedu.day05;
/**
重载
- @author Administrator
*/
public class Test1 {
public static void main(String[] args) {
int y=5;
double z=5.0;
eat(y);
eat(z);
}
public static void eat(int x) {
x=4;
System.out.println(x);
}
public static void eat(double x) {
x=4.0;
System.out.println(x);
}
}
package cn.tedu.day05;
public class ObjectA {
public static void main(String[] args) {
// TODO Auto-generated method stub
StudentA stu1=new StudentA();
stu1.name="优秀";
stu1.age=25;
stu1.address="ssdasdas";
stu1.printInfo();
System.out.println("----------------------------------");
//构造方法 赋予初值
StudentA stu2=new StudentA("狗狗");
System.out.println(stu2.name);
StudentA stu3=new StudentA(16);
System.out.println(stu3.age);
}
}
package cn.tedu.day05;
public class StudentA {
//成员变量
String name;
int age;
String address;
//构造方法
public StudentA(){
System.out.println("这就是一个构造方法");
}
//构造方法的重载
public StudentA(String name ){
this.name=name;
}
//构造方法的重载
public StudentA(int age){
this.age=age;
}
//成员方法
public void printInfo(){
System.out.println("姓名"+name+",年龄"+age+",地址"+address);
}
}
package cn.tedu.day05;
public class GameTest {
public static void main(String[] args) {
LOL lol=new LOL(“联盟”, 9.0, “锤子”);
System.out.println(lol.name+lol.version+lol.agent);
System.out.println(lol.name);
System.out.println(lol.version);
System.out.println(lol.agent);
}
}
package cn.tedu.day05;
/**
- LOL游戏
- 成员变量:
- 游戏名称
- 版本号
- 代理商
*成员方法: - 打开游戏
- 暂停游戏
- 关闭游戏
- @author Administrator
*/
public class LOL {
String name;
double version;
String agent;
public LOL(String n,double version,String agent){
this.name=n;
this.version=version;
this.agent=agent;
}
public void start() {
System.out.println(“游戏启动”);
}
public void pause() {
System.out.println(“游戏暂停”);
}
public void exit() {
System.out.println(“游戏关闭”);
}
}