记 2018/11/08 面向对象基础学习 1#

一、类与对象概述

  1、为了把日常生活中实物用学习语言描述出来

  2、如何描述现实事物

    属性:就是该事物的描述信息(名词)

    行为:就是该事物能够做什么(动词)

  3、Java中最基本单位是类

    成员变量:事物的属性

    成员方法:事物的行为

  4、定义类其实就是定义类的成员(成员变量和成员方法 )

    成员变量  和在类中,方法外

    成员方法  去掉satatic

  5、类和对象的概念

    类: 是一组相关的属性和行为的集合

    对象: 是该类事物的具体体现

类定义实例:

  

class Student

    String name;
    int age;
    String gender;

    public void study()
    {
            System.out.println("我要学习");
    }

    public void sleep()
   {
            System.out.println("我要睡觉");
    }

二、面向对象(类的使用)

  1、创建对象格式

    类名  对象名 = new 类名();

  2、使用成员变量

    对象名.变量名

  3、使用成员方法

    对象名.方法名(...)

类使用实例

  

class Test1_Phone {
    public static void main(String[] args) {
        //创建对象
        Phone p = new Phone();
        //调用对象中的属性并赋值
        p.brand = "iphone";
        p.price = 998;

        System.out.println(p.brand + "..."  + p.price);

        //调用成员方法
        p.call();
        p.sendMessage();
        p.playGame();
    }
}

/*
* 模仿学生类,让学生自己完成
    * 属性:品牌(brand)价格(price)
    * 行为:打电话(call),发信息(sendMessage)玩游戏(playGame)

*/
class Phone {
    String brand;                    //品牌
    int price;                        //价格

    public void call() {            //打电话
        System.out.println("打电话");
    }

    public void sendMessage() {        //发信息
        System.out.println("发信息");
    }

    public void playGame() {        //玩游戏
        System.out.println("玩游戏");
    }
}    

三、成员变量和局部变量的区别

  1、在类型中的位置不同

    成员变量:在类中方法外

    局部变量:在方法定义中或者方法声明上

  2、在内存中的位置不同

    成员变量:在堆内存中(成员变量属于对象,对象进对内存)

    局部变量:在栈内存中(局部变量属于方法,随着方法的调用完毕弹栈消失)

  3、生命周期不同

    成员变量:随着对象的创建而存在,随着对象的消失而消失

    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

  4、初始化值不同

    成员变量:由默认初始化值 String--null  int--0  boolean--false...

    局部变量:没有默认初始化值,必须定义,赋值,然后才能使用

  5、注意事项

    局部变量名称可以和成员变量名称一样,在方法中使用的时候采用就近原则

    基本数据类型比那辆包括:byte,short,int,long,float,double,boolean,char

    引用数据类型变量包括:数组,类,接口,枚举

四、引用类型当形式参数

  如果一个方法的形式参数是一个类类型(引用类型,这里其实需要该类的对象)。

五、匿名对象的概述和应用

  1、什么是匿名对象--没有名字的对象

  2、匿名对象应用场景

    调用方法,仅仅只调用一次的时候。

    匿名对象可以作为实际参数传递

实例

    

class Demo2_Car {
    public static void main(String[] args) {
        /*Car c1 = new Car();            //创建有名字的对象
        c1.run();
        c1.run();

        new Car().run();            //匿名对象调用方法
        new Car().run();    */        //匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象    

        //匿名对象是否可以调用属性并赋值?有什么意义?
        /*
        匿名对象可以调用属性,但是没有意义,因为调用后就变成垃圾
        如果需要赋值还是用有名字对象
        */
        new Car().color = "red";
        new Car().num = 8;
        new Car().run();
    }
}

class Car {
    String color;            //颜色
    int num;                //轮胎数

    public void run() {
        System.out.println(color + "..." + num);
    }
}

六、封装的概述

  1、是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

  2、好处

    隐藏实现细节,提供公共访问方式

    提高代码复用性

    提高安全性

  3、原则

    将不需要对外提供的内容都隐藏起来

    把属性隐藏,提供公共方法对其访问

七、private关键字概述和特点

  特点:

    是一个权限修饰符

    可以修饰成员变量和成员方法

    被其修饰的成员只能在本类中被访问

八、this关键字

  this代表当前对象的引用

  用来区分成员变量和局部变量重名

实例

    

class Demo2_Phone {
                public static void main(String[] args) {
                    Phone p1 = new Phone();
                    p1.setBrand("三星");
                    p1.setPrice(5288);

                    System.out.println(p1.getBrand() + "..." + p1.getPrice());
                    p1.call();
                    p1.sendMessage();
                    p1.playGame();
                }
            }
            /*
            手机类
                属性:品牌brand,价格price
                行为:打电话call,发短信sendMessage,玩游戏,playGame
            */
            class Phone {                                //java bean
                private String brand;                    //品牌
                private int price;                        //价格

                public void setBrand(String brand) {    //设置品牌
                    this.brand = brand;
                }

                public String getBrand() {                //获取品牌
                    return this.brand;                    //this.可以省略,你不加系统会默认给你加
                }

                public void setPrice(int price) {        //设置价格
                    this.price = price;
                }

                public int getPrice() {                    //获取价格
                    return price;
                }

                public void call() {                    //打电话
                    System.out.println("打电话");
                }

                public void sendMessage() {                //发短信
                    System.out.println("发短信");
                }

                public void playGame() {                //玩游戏
                    System.out.println("玩游戏");
                }
            }

 

原文地址:https://www.cnblogs.com/hardzx/p/9934160.html

时间: 2024-08-30 09:10:16

记 2018/11/08 面向对象基础学习 1#的相关文章

Python自动化运维之11、面向对象基础

一.简介 面向对象编程是一种编程方式,使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用.类就是一个模板,模板里可以包含多个方法(函数),方法里实现各种各样的功能,对象则是根据模板创建的实例,通过实例,对象可以执行类中的方法,每个对象都拥有相同的方法,但各自的数据可能不同. 二.类.对象和方法 在Python中,定义类是通过class关键字,class后面紧接着是类名,类名通常是大写开头的单词,紧接着是('要继承的类名'),表示该类是从哪个类继承下来的

2018.11.9 Dubbo入门学习

1.什么是Dubbo dubbo.io 代表是开源的 DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点 ?单一应用架构 ?当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. ?此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键. ?垂直应用架构 ?当访问量逐渐增大,单一应用增

树的dfs序,p1539,其他经典问题,2018/11/08模拟赛T3

树的dfs序指从根节点进行dfs(先序遍历),每次到达某个点的时间和离开这个点的时间.它可以将树上的问题转换成序列问题进行处理. 比如对于p1539的样例可以这样解释. 每个点的左边数字表示进入该点的"时间",右边的数字表示离开该点的"时间".对dfs序的介绍就到这里. 然后来看一个例题: 先读入边,跑一遍dfs确定dfs序. 对于操作1,把点x的进入的"时间"+=a,把x出去的"时间"-=a 这样操作3询问根节点到y的路径点

11、python基础学习-while循环

1.while 条件 : print(“ ”) 2.输出1-10:#!/usr/bin/env python num = 1while num <= 10 : print(num) num += 1 3.输出1-10之间的偶数:#!/usr/bin/env python num = 1while num <= 10 : if num % 2 == 0 : print(num) num += 1 4.猜年龄:#!/usr/bin/env python age = 36flag = Truewhi

Python学习系列(八)( 面向对象基础)

 Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类本身. 2,类的方法:对象也可以使用属于类的函数来具有功能,这样的函数称之为类的方法.域和方法合称为类的属性.类使用class关键字创建,类的属性被列在一个缩进块中. 3,self:类的方法与普通的函数只有一个特别的区别----他们必须有一个额外的第一个参数名称,但是在调用的时候不能为其赋值,Pyt

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

python基础学习08(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #异常 """ NameError: 尝试访问一个未申明的变量 ZeroDivisionError:  除数为零 SyntaxError: 解释器语法错误 IndexError: 请求的索引超出序列范

如鹏网学习笔记(二)面向对象基础

面向对象基础1,面向对象的三大特征:封装.继承.多态. 2,定义字段的方法和实例化类:和声明数组一样,类名 对象名 = new 类名(); 3,对象的引用传递:Person weiren = yzk; weiren指向对yzk当前所指向的对象. 4,null和成员变量.局部变量的不同初始化 1)null表示变量没有指向任何对象 2)对于一个为null的变量调用成员方法都会报异常NullReferenceException 3)值类型(ValueType):数据类型(int.long.double

python基础学习11(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #执行环境 #可调用对象 """ 许多的python 对象都是我们所说的可调用的,即是任何能通过函数操作符“()”来调用的对象.要调用可调用对象, 函数操作符得紧跟在可调用对象之后.Python 有4