1 面向对象简述

将 {1,3,45,56,78,90}转化为[1,3,45,56,78,90]

1-2 方法1:面向过程

代码块
public class test {
    public static void main(String[] args) {
        int[] array = {1,3,45,56,78,90};
//        打印成[1,3,45,56,78,90]
        System.out.print("[");
        for (int i = 0; i < array.length; i++) {
            if(i==array.length-1){
                System.out.print(array[array.length-1]+"]");
            }
            else {
                System.out.print(array[i]+",");
            }

        }
    }
}

1-2 方法2:面向对象

代码块
import java.util.Arrays;
public class test {
    public static void main(String[] args) {
        int[] array = {1,3,45,56,78,90};
//        打印成[1,3,45,56,78,90]
        System.out.println(Arrays.toString(array));
    }
}

2 面向对象的思想举例

面向对象:把衣服扔进洗衣机
面向过程:自己动手洗衣服
***

3 类和对象的关系

对象是类的实例化
类是抽象的。
对象是类具体的。
***

4 定义一个学生类

public class Student {
    int age = 13;
    String name = "wangsiyu";

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

1.成员变量是直接定义在类当中,在成员方法的里面
2.成员方法的定义不需要写static

5 对象的创建和使用

5-1第一步:导包

1.通常情况下,一个类并不能直接使用,必须实例化对象后才可以使用。
2.导包的格式: import 包名称.类名称
3.对于和当前类在同一包下,导包语句可以省略不写

5-2 创建对象

格式:类名称 对象名 = new 类名称();
Student stu = new Student();

5-3 对象的使用

成员变量的使用:对象名.成员变量
成员方法的使用:对象名.成员方法();

5-4 实例化上文的学生类

public class Student {
    int age = 13;
    String name = "wangsiyu";

    public void study(){
        System.out.println("studdy  sdudsla");
    }
}

6手机类的小练习

7 一个对象的内存图

8 两个对象使用一个类的内存图

9 两个引用指向同一个对象内存图

10 使用对象类型作为方法的参数

10-1 创建一个学生类

代码块
package demo1;

public class mystudent {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.age=18;
        stu.name="wangsiyu";
        method(stu);
    }
    public static void method(Student stu){
        System.out.println(stu.age);
        System.out.println(stu.name);
        stu.think();
    }
}

10-2实例化学生,将对象作为方法的参数

代码块
package demo1;

public class mystudent {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.age=18;
        stu.name="wangsiyu";
        method(stu);
    }
    public static void method(Student stu){
        System.out.println(stu.age);
        System.out.println(stu.name);
        stu.think();
    }
}

10-3使用对象类型作为方法的参数内存图

11 使用对象类型作为方法的返回值

11-1 创建一个学生类

代码块
package demo1;

public class Student {
    int age;
    String name;

    public void think(){
        System.out.println(name+"学生可以思考");
    }
}

11-2使用学生类的对象作为方法的返回值

代码块
package demo1;

public class mystudent {
    public static void main(String[] args) {
        Student res = method();
        System.out.println(res.age);
        System.out.println(res.name);
    }
    public static Student method(){
        Student stu = new Student();
        stu.name = "nezha";
        stu.age = 12;
        return  stu;

    }
}

12 成员变量和局部变量的区别

null 位置 作用域 默认值 内存 生命周期
成员变量 方法外部,直接写在类中 整个类作用域 有默认值,规则和数组一样 堆内存 随对象而生,随垃圾回收消失
局部变量 写在方法内部 只有方法可以调用,出了方法就失效 没有默认值,想使用必须手动赋值 栈内存 随方法进栈而生,随方法出栈消失

13 封装的思想——给一个数组,求最大值

package demo1;

public class getmax {
    public static void main(String[] args) {
        int[] array = {12,34,67,123,34,555,1024,1};
        int res = getMax(array);
        System.out.println("array数组的最大值是"+res);
    }

    public static int getMax(int[] array){
        int max = array[0];
        for (int i = 0; i < array.length; i++) {
            if(array[i]>max){
                max = array[i];
            }
        }
        return max;
    }
}

14 private封装

1.使用了private关键字修饰成员变量,本类中仍然可以访问到该成员变量,但是超出本来之外则不能直接访问该成员变量
2.使用了private关键字修饰成员变量,可以使用Getter和Settter方法来访问,提高代码的安全性

14-1 使用了private,Getter和Setter的类

package demo1;

public class Student {
    private int age;
    String name;

    public void setAge(int res){
        age = res;
    }
    public int getAge(){
        return age;
    }
}

14-2 使用Setter来设置成员变量值,使用Getter来获取值

package demo1;

public class mystudent {
    public static void main(String[] args) {
        Student stu = new Student();
        System.out.println(stu.name);
        System.out.println(stu.getAge());
        stu.setAge(66);
        System.out.println(stu.getAge());
    }
}

15 使用private关键字来定义学生类

注意:布尔值的Setter不变,但是Setter是有区别的。

15-1 定义一个学生类

public class Student {
    int age =18;
    private boolean male =true;

    public boolean isMale() {
        return male;
    }

    public void setMale(boolean male) {
        this.male = male;
    }
}

15-2 获得布尔值,和修改布尔值的私有成员变量

package demo1;

public class ms {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setMale(false);
        System.out.println(stu.isMale());
    }
}

16 this关键字的作用

当方法的局部变量和类的成员变量重名时候,遵循就近原则
使用this.变量名表示使用成员变量
通过谁调用的方法,谁就是this

16-1 定义一个类

package demo1;

public class Student {
    String name = "wangsiyu";

    public void sayhello(String name){
        System.out.println(name+"你好,我是"+this.name);
    }
}

16-2 使用这个类

package demo1;

public class ms {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.name = "mayun";
        stu.sayhello("wangjianlin");
    }
}

17 构造方法

1.当我们使用new创建对象的时候,其实调用的就是构造方法

2.构造方法的名称必须和类名称大小写完全一致

3.构造方法不要写返回值,连void都不要写

4.构造方法不能有返回值

18 定义一个标准的学生类

有私有成员变量
有构造方法
有Getter和Setter.

package demo1;

public class Student {
    private String name;

    public Student(){

    }
    public Student(String name){
        this.name=name;
    }

    public void setName(String res){
        name = res;
    }
    public String getName(){
        return name;
    }
}

java第2天:类,对象,封装和构造方法的更多相关文章

  1. 比较C++、Java、Delphi声明类对象时候的相关语法

    同学们在学习的时候经常会遇到一些问题,C++.Java.Delphi他们到底有什么不一样的呢?今天我们来比较C++.Java.Delphi声明类对象时候的相关语法.希望对大家有帮助! C++中创建对象 ...

  2. 黑马程序员——JAVA基础之简述 类的封装

    ------- android培训.java培训.期待与您交流! ---------- 类的封装(Encapsulation)  封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装优 ...

  3. Java基础语法05-面向对象-封装-包-构造器-初始化

    封装 面向对象三大特性:封装.继承.多态 封装的好处 1.调用者:方便使用/简化使用 2.设计者:安全,可控 隐藏对象内部的复杂性,只对外公开简单的接口.便于外界调用,从而提高系统的可扩展性.可维护性 ...

  4. Java反射 - 1(得到类对象的几种方法,调用方法,得到包下的所有类)

    通过反射获得对象的方法 准备工作: 有一个User类如下 package o1; /** * Created by yesiming on 16-11-19. */ public class User ...

  5. java新手笔记9 类的封装示例

    1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 ...

  6. JAVA之等号、传类对象参数与c++的区别

    在JAVA中用等号对类对象进行赋值,实际上操作的是对象的地址. eg: package MyText; class ClassA { int value; public void seta(int v ...

  7. java基础:详解类和对象,类和对象的应用,封装思想,构造方法详解,附练习案列

    1. 类和对象 面向对象和面向过程的思想对比 : 面向过程 :是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的 面向对象 :是一种以对象为中心的编程思想,通过指挥对象实现具体的功能 1. ...

  8. 18.Java 封装详解/多态详解/类对象转型详解

    封装概述 简述 封装是面向对象的三大特征之一. 封装优点 提高代码的安全性. 提高代码的复用性. "高内聚":封装细节,便于修改内部代码,提高可维护性. "低耦合&quo ...

  9. Java学习笔记 04 类和对象

    一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任 ...

  10. Java—类的封装、继承与多态

    一.类和对象 1.类 类是数据以及对数据的一组操作的封装体. 类声明的格式: 类声明 { 成员变量的声明: 成员方法的声明及实现: } 1.1 声明类 [修饰符] class 类<泛型> ...

随机推荐

  1. CF 13E Holes

    Holes 题意:现在有一排洞,每个洞有一个弹力,能弹到ai之后的洞,球会弹到这个排的外面,现在有2个操作,0 a b 将第a个洞的弹力设为b, 1 a 将球放入第a个洞,求输出进洞的次数 和 弹出这 ...

  2. css 元素实际宽高

    首先定义一个div. 然后稍微装修一下 下面开始区分 一.clientWidth和clientHeigh . clientTop和clientLeft 1,clientWidth的实际宽度 clien ...

  3. 51NOD 大数加法以及python写法

    练练 大数加法一般为小学生式的"竖式计算"要特别注意的是借位与进位的问题(先给看c++写法,我怕先看了python写法,会看不下去c++写法)这题还有要注意的是 1.同符号的话,直 ...

  4. React-Native组件样式合集

    最近在阅读RN的文档,但有一点深感遗憾的是——官方对绝大多数RN组件没有用Gif图或者静态图的方式呈现给大家. 所以我通过百度查询,一个一个的查到了这些RN组件的UI表现图,下面呈现给大家   阅前必 ...

  5. SpringCloud 学习(二)-2 :Securing The Eureka Server

    由于工作等种种原因未能连续进行学习,现在继续学习微服务,不过是新建的demo,springcloud版本用的是Finchley.SR2. 之前用简单demo实现了注册中心,现在来对注册中心加安全验证: ...

  6. [币严BIZZAN区块链]数字货币交易所钱包对接之比特币(BTC)

    在币严BIZZAN开发数字货币交易所的过程中,一共有两大难点,一个是高速撮合交易引擎,另一个是钱包对接,这两者是我们团队以前没有接触过的.这个系列的文章主要介绍数字货币交易所钱包对接实现技术.第一个要 ...

  7. 行数据库VS列数据库

    一.介绍 目前大数据存储有两种方案可供选择:行存储和列存储.业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全.可靠.完整性.从目前发展情况看,关系数据库已经不适应这种巨 ...

  8. Unity3D_UGUI与NGUI的区别与优缺点

    1. NGUI与UGUI的区别 1) UGUI的Canvas 有世界坐标和屏幕坐标; 2) UGUI的Image可以使用material; 3) UGUI通过Mask来裁剪,而NGUI通过Panel的 ...

  9. YUM简单入门

    1.制作YUM源先关闭相关安全设置,安装vsftpd [root@rhel7 ~]# firewall-cmd --set-default-zone=trusted 设置防火墙受信 [root@rhe ...

  10. CentOS7.2搭建LAMP环境

    所谓的Lamp就是:Linux+Apache+mysql+php.这里的Linux使用CentOS7.2. 0x00 开始我们可以先更新一下yum: # 升级所有包同时也升级软件和系统内核 yum - ...