博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day06
阅读量:6907 次
发布时间:2019-06-27

本文共 4874 字,大约阅读时间需要 16 分钟。

06.05 面向对象(学生类的使用)

  A.文件名问题
  在Java一个文件夹写两个类:一个基本类,一个测试类
  B.如何使用对象
  创建对象并使用
  格式:类名 对象名 = new 类名()
  D.如何使用成员变量呢?
  对象名.变量名
  E.如何使用成员方法
  对象名.方法名(...)

public class day06_05 {    public static void main(String srgsp[]){        Car c1 = new Car();             c1.color="red";             c1.num=4;        c1.run();    }}/*车的属性:    颜色    轮胎数车的行为:    车在运行    */class Car{    String color;    int num;        public void run(){        System.out.println(color+ "..." + num);    }}
View Code

06.06 面向对象(手机类的使用)

  A.学生类
06.07 面向对象(一个对象的内存图)
  A.学生类
06.08 面向对象(二个对象的内存图)
  A.学生类
06.09 面向对象(三个引用两个对象的内存图)
  A.学生类

06.10 面向对象(成员变量和局部变量的区别)

  A.在类中的位置不同
  成员变量:类中方法外
  局部变量:方法定义中或者方法声明上
  B.在内存中的位置不同
  成员变量:堆内存
  布局变量:栈内存
  C.生命周期不同
  成员变量:随着对象的创建而存在
  布局变量:随着方法的调用而存在
  D.初始化值不同
  成员变量:有默认初始化值
  布局变量:无默认初始化值,必须定义
注意事项:
  局部变量名称可以和成员变量名称一样,在方法中使用的时候采用的是就近原则
  基本数据类型:byte,short,int.long,float,boolean,char
  引用数据类型:数组,类,接口,枚举

06.11 面向对象(方法的形式参数是类名的时候如何调用)

  A.方法的参数是类名public void print(Student s){}//print(new Student())
  如果你看到一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象
  引用数据类型传递的是地址值。

public class day06_11 {    public static void main(String[] args) {        print(10);                Student s = new Student();      //创建对象,并将对象的地址值传递给s        print(s);                       //将s地址传递给下面s(Student s)    }    public static void print(int x){    //基本数据类型充当形式参数        System.out.println(x);    }    public static void print(Student s){   //引用数量类型充当形式参数        s.name="张三";        s.age=23;        s.speak();    }}class Student{    String name;    int age;    public void speak(){        System.out.println(name+ "..." +age);    }}
View Code

06.12 面向对象(匿名对象的概述和应用)

  A.什么是匿名对象

  没有名字的对象
  B.匿名对象的应用场景
  a.调用方法
      匿名调用的好处:节省代码
      注意:调用多次,不适合
  b.匿名对象可以作为参数传递
  C.案例演示

public class day06_12 {    public static void main(String[] args) {        Car1 c1 = new Car1();     //有名字的的对象        c1.run();                new Car1().run();        //匿名对象调用,不适合多次运行    }}class Car1 {    String color;    int num;    public void run(){        System.out.println("车运行");    }}-----------------------------------------//匿名对象是否可以调用属性并赋值。public class day06_12 {    public static void main(String[] args) {        new Car1().color="red";        new Car1().num = 8;        new Car1().run();        //匿名对象调用,不适合多次运行    }}class Car1 {    String color;    int num;    public void run(){        System.out.println(color+"..."+num);    }}
View Code

06.13 面向对象(封装的概述

  A.概述 :是指隐藏对象的属性和实现细节,进对外提供公共的访问方式
  B.封装的好处
  隐藏实现细节,提供公共的访问方式
  提高了代码的复用性
  提高了安全性
C.封装原则
  把不需要对外提供的内容隐藏起来
  把属性隐藏,提供公共方法对其访问
06.14 面向对象(private关键字的概述和特点)
  A.人类赋值年龄的问题
  B.private关键字特点
  是一个权限修饰符
  可以修饰成员变量和成员方法
  被修饰的成员只能在本类中被访问
  C.案例演示

public class day06_14_private {    public static void main(String[] args) {        Person p = new Person();        p.name="张三";        p.age=23;        p.speak();    }}class Person{    String name;    int age;    public void speak(){        System.out.println(name+"..."+age);    }}--------------------------------------------------public class day06_14_private {    public static void main(String[] args) {        Person p = new Person();        p.name="张三";        p.setAge(-17);        System.out.println(p.getAge());    }}class Person{    String name;    private int age;    public void speak(){        System.out.println(name+"..."+age);    }        public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }//    public void setAge(int age) {
public void setAge(int a) { if (a>0 && a<200){ age = a; }else{ System.out.println("please goback fireball"); } }}
View Code

  封装和private的使用

  把成员变量用private修饰
  提供对应的getxxx和setxxx方法,在方法里可以添加方法进行判断
  private仅仅是封装的一种体现形式

06.15 面向对象(this关键字的概述和使用)

  A.this关键字的特点
  代表当前对象的引用
  B.案例演示
  用来区分成员变量和局部变量的重名
06.15 面向对象(手机类代码及其测试)
  A.学生练习
  把手机类写成一个标准类

public class Phone {    public static void main(String arg[]){        Phone_test p1 = new Phone_test();        p1.setBrand("sanxing");          //设置        p1.setPrice(5288);                System.out.println(p1.getBrand() + "..." +p1.getPrice());        p1.call();                        //调用成员方法       对象名.方法名        p1.sendMessage();        p1.playGame();    }}class Phone_test{    private String brand;    private int price;        public String getBrand() {        return brand;    }    public void setBrand(String brand) {        this.brand = brand;    }    public int getPrice() {        return this.price;           //this 可加可不加    }    public void setPrice(int price) {        this.price = price;    }        public void call(){        System.out.println("打电话");    }    public void sendMessage(){        System.out.println("发短信");    }    public void playGame(){        System.out.println("打游戏");    }}
View Code

 

转载于:https://www.cnblogs.com/chengxiaofeng/p/10369032.html

你可能感兴趣的文章
用户注册流程分析
查看>>
6.1Python数据处理篇之pandas学习系列(一)认识pandas
查看>>
搞小程序遇到的问题及解决方案(持续更新)
查看>>
jquery ui tabs
查看>>
个人作业(alpha)
查看>>
ELK集成Log4net 重写一个TcpAppender
查看>>
【转载】win7下IIS的安装和配置图文教程
查看>>
一.c#概述,c#语言及其特点;c#与.net框架关系
查看>>
关于更新发布CSS和JS文件的缓存问题
查看>>
threading 多线程
查看>>
每个Android开发者必须知道的内存管理知识
查看>>
常用的PHP知识记录
查看>>
MYSQL(python)安装记录
查看>>
(十一)构造方法的重载和成员方法的重载
查看>>
The Use Of Class Pointer
查看>>
《CLR Via C# 第3版》笔记之(二十三) - 线程锁和线程安全的概念
查看>>
Meta标签详解
查看>>
Kaggle : Display Advertising Challenge( ctr 预估 )
查看>>
jquery stop( ) 的用法 (转)
查看>>
【js】性能问题
查看>>