今天给大家讲一下面向对象中的构造,封装;

构造:构造方法有以下几个特点:1.方法名和类名一致。2.无返回类型。接下来的几种构造样式,直接上代码吧:

//这是一个宠物类 有一个属性:名字(name)
public class Pet {
  String name;
//无参构造
public Pet(){
  this.name = "哈士骑";
}
//有参构造
public Pet(String name1){
  this.name = name1; //这里我没用 this.name = name;这样也可以,我怕你们不理解;
}

//这里我是直接就在这个里建了一个测试方法
public static void main(String[] args){
  //这里我用先测试了无参构造,系统都会自动识别的,当我没给参数那就他会自动调用那个无参构造
  Pet dog = new Pet();
  System.out.println(dog.name);//输出结果:哈士骑
  //下面这个是调用了有参构造
  Pet dog2 = new Pet("拉布拉多");
  System.out.println(dog2.name);//输出结果:拉布拉多
}
}

以上是简单的构造,你学会了没;不懂可以问我,接下来走进下一个:

封装:封装有以下特点:要用到private 私有的,封装封装,那就是必须要封起来,所以要用私有属性,其他类要访问封装好了的属性就必须通过接口才能获取和修改;接下来请看简单代码详解:

//这是一个汽车类,里面放了两个属性:车轮(wheels) ,车重(weight)

第一种:没有封装的

public class Vehicle {

  int wheels;//车轮个数
  double weight;//车重
}

我建一个测试方法 来访问Vehicle 里面的属性:

public class TestVehicle{

  public static void main(String[] args){

    Vehicle c = new Vehicle();

    System.out.println("车轮个数:"+c.wheels+"车重:"+c.weight);//因为Vehicle类没有封装,所有我可以直接访问到他的属性;

}

}

没封闭的应该不用怎么讲了

第二种:封装了的 ,只要正常封装了的 都可以看到get  set 的代码;

封装快捷键:第一种:如下图  ,直接右击 然后看图

第二种:移到要封装的属性:Alt+? 然后也会出现一排 字母 里面有get set 还有就是属性必须设为私有的属性

public class Vehicle {

  private int wheels;//车轮个数

  private double weight;//车重

public int getWheels() {
  return wheels;
}
public void setWheels(int wheels) {
  this.wheels = wheels;
}
public double getWeight() {
  return weight;
}
public void setWeight(double weight) {
  this.weight = weight;
}


}

我建一个测试方法 来访问Vehicle 里面的属性:

public class TestVehicle{

  public static void main(String[] args){

    Vehicle c = new Vehicle();

    System.out.print(c.getWheels()+" "+c.setWeight());//这个时候去访问他的属性时就必须调用他的接口去访问,不然访问不到,要修改也是要通过接口,记住:get 是得到,就是获取的意思,set 就是修改的意思,多练一练,就好理解了;

}

}

最后再给大家总结一下,构造就是方法名和类名一致,封装就是要有:get 和set 然后要是私有属性,理清楚一点就好了;

本来想继承,和 重载 和多态也一起讲了,但是没时间写了,;

等下晚上或者明天给大家讲解一下;

我将会努力学习持续更新,谢谢大家观看,不懂的可以私信我,给个关注,谢啦,拜拜,下次见;

java中的构造,封装的更多相关文章

  1. java中基本类型封装对象所占内存的大小(转)

    这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runt ...

  2. 2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块

    1.java和c#静态成员调用的不同之处 static 表示静态的,也就是共享资源,它是在类加载的时候就创建了 java中   可以通过实例来调用,也可以通过类名.成员名来调用,但是一般最好使用类名. ...

  3. java 中的JDK封装的数据结构和算法解析(集合类)----顺序表 List 之 ArrayList

    1. 数据结构之List (java:接口)[由于是分析原理,这里多用截图说明] List是集合类中的容器之一,其定义如下:(无序可重复) An ordered collection (also kn ...

  4. Java中的构造代码块

    代码块 ----a静态代码块 ----b构造代码块 ----c普通代码块 执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. a.静态代码块: 静态代码块 ...

  5. Java中对象构造

    构造函数 作用:在构造对象的同时初始化对象.java强制要求对象 诞生同时被初始化,保证数据安全. 调用过程和机制:①申请内存,②执行构造函数的函数体,③返回对象的引用. 特点:与类同名,无返回类型, ...

  6. 【Java基本功】一文了解Java中继承、封装、多态的细节

    本节主要介绍Java面向对象三大特性:继承 封装 多态,以及其中的原理. 本文会结合虚拟机对引用和对象的不同处理来介绍三大特性的原理. 继承 Java中的继承只能单继承,但是可以通过内部类继承其他类来 ...

  7. Java中如何使封装自己的类,建立并使用自己的类库?

    转自:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到.你 ...

  8. 对Java中多态,封装,继承的认识(重要)

                                                            一.Java面向对象编程有三大特性:封装,继承,多态 在了解多态之前我觉得应该先了解一下 ...

  9. 关于Java中的构造方法和set方法()给属性赋值

    对于一个类中的成员变量(属性),属性如果都设置成了private类型,那么对外给属性设置了get和set方法 , 那么外部程序中给这些属性设置值,有两种方式. 第一种就是通过set()方法. 第二种就 ...

随机推荐

  1. 200行Py代码带你实现"打飞机"

    前言 多年前,你我在一起"打飞机".为了实现真正的打飞机,在下一年前踏足帝都学习了无所不能的Python,辣么接下来带你在俩个小时用200行代码学会打飞机. python中提供了一 ...

  2. 百度资深架构师带你深入浅出一致性Hash原理

    一.前言 在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用. 但是普通的余数h ...

  3. priority queue优先队列初次使用

    题目,排队打印问题 Input Format One line with a positive integer: the number of test cases (at most 20). Then ...

  4. Hive&SqlServerql:inner join on条件中如果两边都是空值的情况下,关联结果中会把数据给过滤掉。

    今天遇到的一个大坑,话不多少,看sql和下边的查询结果: --问题:恰好把buildingid is null的记录给过滤掉 ),buildingid ),)); ); ); ); ); ); ); ...

  5. pyquery 的用法 --爬虫解析库

    如果你对Web有所涉及,如果你比较喜欢用CSS选择器,如果你对jQuery有所了解,那么这里有一个更适合你的解析库--pyquery. 接下来,我们就来感受一下pyquery的强大之处. 1. 准备工 ...

  6. [LeetCode] Max Consecutive Ones II 最大连续1的个数之二

    Given a binary array, find the maximum number of consecutive 1s in this array if you can flip at mos ...

  7. 三 Django模型层之Meta

    模型的Meta选项 本文阐述所有可用的元数据选项,你可以在模型的Meta类中设置他们 Meta选项 abstract 如果为True,就表示抽象基类 app_label 如果模型在INSTALLED_ ...

  8. 解决有关flask-socketio中服务端和客户端回调函数callback参数的问题(全网最全)

    由于工作当中需要用的flask_socketio,所以自己学习了一下如何使用,查阅了有关文档,当看到回调函数callback的时候,发现文档里都描述的不太清楚,最后终于琢磨出来了,分享给有需要的朋友 ...

  9. 机器学习基石:09 Linear Regression

    线性回归假设: 代价函数------均方误差: 最小化样本内代价函数: 只有满秩方阵才有逆矩阵. 线性回归算法流程: 线性回归算法是隐式迭代的. 线性回归算法泛化可能的保证: 根据矩阵的迹的性质:tr ...

  10. [Codeforces 100633J]Ceizenpok’s formula

    Description 题库链接 求 \[C_n^m \mod p\] \(1\leq m\leq n\leq 10^{18},2\leq p\leq 1000000\) Solution 一般的 \ ...