java基础---类和对象

1.面向对象

Java是面向对象的程序设计语言,除了8中简单类型外,都属于对象

面向对象的语言会有明显的三个特征:封装、继承、多态

注意:Java其实不算完全面向对象,因为有8种简单类型的存在

2.面向对象的语言有哪些

java 、ython、c++

3.面向对象(OO)的优点

1)与人类的思维习惯一致(观察事物得出结论,用程序的形式写出)

2)信息隐藏,提高了程序的可维护性和安全性(封装)

3)提高了程序的可重用性(多态和继承)

4.什么是类?什么是对象?

猫科动物属于一个类,狮子老虎属于对象。

类就是逻辑概念当中,现实当中内存当中并不存在的;对象是会占内存,实实在在用到的东西

类相当于生产汽车的一张图纸,对象相当于根据图纸生产出来的车

类和对象是一对多;对象只属于一个类。

5.类的概念

1.类是对一群具有相同属性、表现相同行为的对象的抽象

2.类确定对象将会拥有的属性和行为,它定义了一种对象所拥有的数据和所能完成的操作。

3.在面向对象程序设计中,类是程序的基本单元。程序中的对象是类的实例 。对象是通过类创建的

 

车的文字描述

静态特征:车名、车身颜色等

动态特征:能前进、能倒退

对车这个类型的静态特征描述为类里的属性,对车类的动作描述,是类里的方法

类有两个基本元素:属性和方法

6.定义类(定义一个类的步骤)

定义类名、编写类的属性、编写类的方法

7.类的创建

成员变量描述静态特征,放置在类块中的任何位置,通常书写在类的开始处。

成员方法描述动态特征,放置在类块中的任何位置,通常书写在成员变量之后

public class Car {

/*

 * 1-属性field  

 * 2-访问控制符(public)

 * 3-类型(String)  名字  首字母小写  myFirstDog

   *

 */

public String color;

public String name;

/*2-方法 method

 *public void method(){

 *}

 **/

public void forward(){

System.out.println("前进"+color);

}

public void backward(){

System.out.println("后退"+name);

}

}  

8.对象的创建?

public class CarTest {

public static void main(String[] args) {

// 1-new 一个对象 类 对象

Car aodi=new Car();

// 属性和方法  filed method

    aodi.color="green"; //属性赋值

    aodi.name="A60";

    //method

    aodi.forward();     //方法调用

    aodi.backward();

    //打印属性

    System.out.println(aodi.color);

    System.out.println(aodi.name);

}  

}

练习:创建和使用对象

编写学员类,输出学员相关信息

编写教员类,输出教员相关信息

public class Student {

    //学生实体类

public String name;

public int age;

public String clazz;

public String hobby;

   //显示学员信息

    public void info(){

     System.out.println("姓名"+name+"年龄"+age+"班级"+clazz+"爱好"+hobby);

    }

}

public class Teacher {

//教师实体类

public String name;

public String course;

public String major;

public int teachingAges;

public void info() {

//显示教员信息

System.out.println("姓名"+name+"课程"+course+"主修"+major+"教龄"+teachingAges);

}

}

public class Test {

测试类

public static void main(String[] args) {

Student xiaoming=new Student();

xiaoming.name="小米";

xiaoming.age=25;

xiaoming.clazz="3年2班";

xiaoming.hobby="LOL";

 

Teacher xiaohon=new Teacher();

xiaohon.name="小红";

xiaohon.course="java";

xiaohon.major="软工";

xiaohon.teachingAges=10;

 

xiaoming.info();

xiaohon.info();

}

}

9.对象的概念?

根据图纸生产出来的车。

类是对事物属性行为的概括描述,对象就是符合类描述的具体事物。

所以一个对象必须属于某个类,一个类可以有多个具体对象。

10.对象的创建

用关键字new来创建对象。new的作用是为对象新开辟一片内存空间

对象的销毁

Java垃圾收集机制)当对象不存在引用时,它就会被java自动销毁。

11.对象的内存分析(栈内存、堆内存)  

new一个对象会在堆内存申请一个空间,堆内存的房间号存在栈内存中,栈内存存放的是并不是对象而是对象所在堆内存的房间的地址。

堆内存放的是真是对象的实体,栈内存放的是堆内存的地址

例:int a=10;开劈a的空间

int b=a; 开劈b的空间

b=100;   b的值改变,a的值不变

2:

Student s1=new Student(); 申请空间

S1.name=”1”;              对象名字为1

Student s2=s1;              s2在栈内存中申请了空间,把s1的堆内存的地址放了进去

S2=name=”2”;

S1.name?  S2.name?          放着的是同一把钥匙

 打印俩个2

12.引用类型变量

引用赋值

例如:我们有Student类

 Student s = new Student();

 Student s2 = s; //引用赋值

 同一类型的俩个引用变量指向了同一个对象

练习:定义管理员类、定义客户类

定义管理员类

训练要点

n类的属性:名字,密码

n定义类的方法:show() 显示信息

n需求说明

n编写管理员类

n实现思路

1. 定义管理员类Administrator

2. 定义其属性和方法

public class Administrator {

//定义一个类

//类的属性

public String name;

public String password;

//2-方法 method

public void show(){

System.out.println("管理员"+name+"密码"+password);

}

}

 

定义客户类

需求说明

n 编写客户类

n属性:积分、卡类型

n方法show():显示客户信息(显示积分、卡类型)

定义客户类Customer

定义属性和方法

public class Customer {

//类

public int points;

public String type;

public void show() {

System.out.println("显示积分"+points+"卡类型"+type);

}

}

 

创建管理员对象

训练要点

n使用类创建对象

n引用对象的属性和方法

n需求说明

n创建两个管理员类对象,输出他们的相关信息

n实现思路

1、创建两个管理员类的对象

2、给两个对象赋值并调用

显示方法

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

//编写管理员对象

Administrator admin1=new Administrator();

admin1.name="admin";

admin1.password="123456";

Administrator admin2=new Administrator();

admin2.name="admin1";

admin2.password="123456";

admin1.show();

boolean isTrue=true;

}

}

 

更改管理员密码

训练要点

n使用类创建对象

nwhile循环

n需求说明

n输入旧的用户名和密码,如果正确,方有权限更新

n从键盘获取新的密码,进行更新

import java.util.Scanner;

 

 

public class Test1 {

public static void main(String[] args) {

//编写管理员对象

Administrator admin1=new Administrator();

admin1.name="admin";

admin1.password="123456";

Administrator admin2=new Administrator();

admin2.name="admin1";

admin2.password="123456";

admin1.show();

boolean isTrue=true;

while (isTrue) {

Scanner input=new Scanner(System.in);

System.out.println("请输入管理员账号");

String uname=input.next();

System.out.println("请输入管理员密码");

String pwd=input.next();

if (uname.equals(admin1.name)&&pwd.equals(admin1.password)) {

System.out.println("新密码");

      String newPwd=input.next();

      admin1.password=newPwd;

      System.out.println("修改密码成功");

        isTrue=false;

}else{

System.out.println("用户名或密码不对,重新输入");

// isTrue=true;

}

}   

}

}

 

 

客户积分回馈

需求说明

n实现积分回馈功能

n金卡客户积分大于1000分或普卡客户积分大于5000,获得回馈积分500分

n创建客户对象输出他得到的回馈积分

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {

    Scanner input=new Scanner(System.in);

    Customer c=new Customer();

    System.out.println("请输入卡的类型");

    c.type=input.next();

    System.out.println("请输入积分");

    c.points=input.nextInt();

    if ((c.equals("金卡")&&c.points>1000)||(c.type.equals("普卡")&&c.points>5000)) {

System.out.println("获得500积分");

}else{

System.out.println("对不起,您的条件不足");

}     

}

}

练习:创建和使用对象

 一个景区根据游人的年龄收取不同价格的门票。请编写游人类,根据年龄段决定能够购买的门票价格并输出

public class Test3_youren {

      public String name;

      public int age;  

      public void info(){

       System.out.println("姓名"+name+"年龄"+age);

      }

}

 

import java.util.Scanner;

public class Test3 {

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

Scanner onput=new Scanner(System.in);

Test3_youren c=new Test3_youren();

Test3_menpiao d=new Test3_menpiao();

System.out.println("请输入姓名");

c.name=input.next();

System.out.println("请输入年龄");

c.age=input.nextInt();

    if(c.age<18){

      c.info();

 System.out.println("门票免费");

    }else{

     c.info();

     System.out.println("支付20元门票");

    }

}   

}

作业:10道题(14天)

posted on 2018-08-30 10:40  流着眼泪奔跑  阅读(2049)  评论(0编辑  收藏  举报

导航