zoukankan      html  css  js  c++  java
  • 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天)

  • 相关阅读:
    linux服务器安全配置攻略
    Linux服务器调优
    Tengine + Lua + GraphicsMagick 实现图片自动裁剪/缩放
    nginx缓存设置
    动态缓存技术之CSI,SSI,ESI
    ionic环境配置
    Node.js企业开发:应用场景
    HashMap实现原理、核心概念、关键问题的总结
    《Windows核心编程》读书笔记.Chapter06线程基础
    开发环境eclipse for Mac 下的常用快捷键汇总(基本参照Win系,将Ctrl换为Command)
  • 原文地址:https://www.cnblogs.com/-lyr/p/9558720.html
Copyright © 2011-2022 走看看