一、面向对象

是一种编程思想

1.三大特征

封装、继承、多态

二、类 class

类是一类事物的抽象

属性 --事物的特征

方法 --事物的行为

三、对象

是一类事物中具体的个体

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

获取属性:对象名.属性

给属性赋值:对象名.属性 = 值

对象名.方法()

一个.java文件中可以包含多个类,但是只能有一个类被public修饰,
 *     被public修饰的类的名字就是.java的文件名
 * 
 * .class文件从硬盘中加载进入内存中,
 * JVM虚拟机自动编译并调用main()方法到栈内存中。

1. 在栈内存中创建一个变量 p1 ,持有对象的地址值
2. 在堆内存中创建 Phone 对象,并且开辟变量空间,完成初始化
3. 给堆内存中的元素分配一个唯一的标志,地址值,交给 p1 保存
4. p1.brand = “ 华为 ”; p1.price = 999.9; 就去堆内存中找到唯一的地址值,找到 Phone 对象,并对其属性进行修改赋值

四、GC  垃圾回收器:

如果堆内存中的对象没有任何的变量指向该对象,那么程序将无法再访问该对象,

GC会定时自动回收该对象,并且释放该对象所占的内存区。

当对象没有任何引用指向时,java的垃圾回收器GC会定时自动回收该对象,

并且释放该对象所占的内存区,我们也可以手动调用 System.gc ( ) ;

提醒GC来回收,但是是否来回收还是看gc自己的安排。

提醒GC回收垃圾:

System.gc ( ) ;

package test.day05;
// 创建类和对象
/* 一个.java文件中可以包含多个类,但是只能有一个类被public修饰,*  被public修饰的类的名字就是.java的文件名* * .class文件从硬盘中加载进入内存中,* JVM虚拟机自动编译并调用main()方法到栈内存中。*/
public class Test1_Class {public static void main(String[] args) {// 4、通过new关键字创建对象// p1是引用类型的变量,保存着内存分配的地址值Phone p1 = new Phone();// 5. 调用方法、功能p1.call();p1.message();p1.music();// 7. 给属性赋值p1.brand = "小米";p1.color = "白色";p1.price = 999.9;p1.size = 5.5;// 6. 获取元素值System.out.println(p1.brand);// null - 小米System.out.println(p1.color);// null - 白色System.out.println(p1.price);// 0.0 - 999.9System.out.println(p1.size); // 0.0 - 5.5Phone p2 = new Phone();p2.brand = "华为";p2.color = "红色";System.out.println(p2.brand);System.out.println(p2.color);/** 当对象没有任何引用指向时,那么程序将无法访问该对象,* java的垃圾回收器GC会定时自动回收该对象,* 并且释放该对象所占的内存区,* 我们也可以手动调用 System.gc ( ) ;  * 提醒GC来回收,但是是否来回收还是看gc自己的安排。System.gc ( ) ;*/p2 = null;System.gc();System.out.println(p2);}
}
// 1. 用来描述生活中的手机这一类事物  特征+行为
// 类是一类事物的抽象
class Phone{// 2.特征 -- 成员变量/属性String color;// 颜色String brand;// 品牌double size;// 尺寸double price;// 价格// 3.行为 -- 成员方法public void call() {// 打电话System.out.println("calling...");}public void message() {// 发短信System.out.println("sending...");}public void music() {// 听音乐System.out.println("listening...");}
}

五、private 私有的

修饰属性、方法,只能在本类中访问

提供公开的访问方式来访问私有化属性或方法

属性私有化,方法公开化

// 访问权限修饰符  public-公开的    private-私有的
// private 可以修饰属性--成员变量  也可以修饰方法--成员方法
// 只能在本类中访问

// 提供公开的访问方式来访问私有化属性或方法
    // 属性私有化,方法公开化#

// 当方法被私有后,只能在本类中访问

// 快捷键生成 getXxx setXxx 方法
    // 右键 -> source -> Generate Getters and Setters

package test.day05;
// 访问权限修饰符  public-公开的    private-私有的
// private 可以修饰属性--成员变量  也可以修饰方法--成员方法
// 只能在本类中访问public class Test3_Prevate {public static void main(String[] args) {Student s = new Student();
//      s.name = "张三";   // name 被私有化了,无法访问
//      System.out.println(s.name);// name 被私有化了,无法访问System.out.println(s.getName());//调用get方法获取值s.setName("李四");// 调用set方法设置值System.out.println(s.getName());s.setAge(16);System.out.println(s.getAge());s.setSex('男');System.out.println(s.getSex());s.study();}
}
class Student{// 使用 private 修饰的属性,只能在当前类使用private String name;// 提供公开的方法,用来给外界获取值,就是 getXxx();public String getName() {return name;}// 提供setXxxx();用来给外界设置值public void setName(String n) {name = n;}private int age;public int getAge() {return age;}public void setAge(int a) {age = a;}// 快捷键生成 getXxx setXxx 方法// 右键 -> source -> Generate Getters and Setters// 提供公开的访问方式来访问私有化属性或方法// 属性私有化,方法公开化#private char sex;public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}// 当方法被私有后,只能在本类中访问private void sleep() {System.out.println("睡觉");}public void study() {System.out.println("学习");sleep();// 对外界 间接提供睡觉的功能}}

面向对象,类,对象,GC垃圾回收器,private关键字相关推荐

  1. java常见的gc回收器_一篇文章让你了解GC垃圾回收器

    简单了解GC垃圾回收器 了解GC之前我们首先要了解GC是要做什么的?顾名思义回收垃圾,什么是垃圾呢? GC回收的垃圾主要指的是回收堆内存中的垃圾对象. 从根对象出发,所有被引用的对象,都是存活对象 其 ...

  2. Java -GC 垃圾回收器

    GC 垃圾回收器: 简介:GC 垃圾回收器是 JVM 中自动内存管理机制的具体实现,在 HotSpot 虚拟机中 GC 的工作主要划分为两 大类,分别是内存动态分配和垃圾回收,在内存执行分配之前,GC ...

  3. [Java基础]-- Java GC 垃圾回收器的分类和优缺点

    关于Java的垃圾回收器,一直是个头疼的问题,这里简要说明下分类和优缺点,供选择使用. 一.JVM GC 垃圾回收器类型 JVM的垃圾回收器大致分为六种类型: 1.串行:垃圾回收器 (Serial G ...

  4. C++ 面向对象(类对象)

    C++ 面向对象(类&对象) 转载于:https://www.cnblogs.com/guozepingboke/p/10823025.html

  5. 如何获取GC(垃圾回收器)的STW(暂停)时间?

    前言 在现代的容器化和微服务应用中,因为分布式的环境和错综复杂的调用关系,APM(Application Performance Monitoring 应用性能监控)显得尤为重要,它通过采集应用程序各 ...

  6. JAVA垃圾回收器源码_浅谈关于Java的GC垃圾回收器的一些基本概念

    一.基本回收算法 1. 引用计数(Reference Counting) 比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数.垃圾回收时,只用收集计数为0的对象.此 ...

  7. 面向对象(类/对象/封装/继承/static/内存类加载)

    >面向对象:万物皆对象: >类和对象: 从代码的角度来说:类是代码的载体. 从逻辑角度来说:类是静态文件:对象是内存中的地址: 形象的来说,类就是一个模具,是用来生产对象的:对象是基于类产 ...

  8. 数组的排序面向对象类对象0708

    一.数组的排序 对数组中的数字按照从小到大或从大到小进行排序 在不断的发展设计中逐步演练出排序的方式方法,称为排序算法 1.排序算法 排序算法有很多种,每一种都有各自排序的规则[算法] 冒泡排序算法 ...

  9. JAVA 面向对象 类 对象 封装

    面向对象概念 在学习面向对象之前,我们可以先了解一下面向过程. 面向过程是一种编程思想,它强调的是过程,意思是我们做任何事,都需要亲力亲为. 面向对象也是一种编程思想,相对于面向过程,我们的身份可以由 ...

最新文章

  1. 权限管理----角色管理
  2. 9.3 图像变换(尺寸变换、旋转变换、灰度变换和数据类型变换)
  3. syn flood dos
  4. NewCode----数串
  5. 占用系统资源测试_高频性能测试面试题15道
  6. Rancher获4000万美元D轮融资,推动计算无处不在
  7. python与中文的那点事
  8. java参考文献英文_java论文英文的参考文献
  9. Maven项目无法引入 Maven Dependencies Libraries 问题
  10. 计算机鼠标的发展历史,键盘和鼠标的发展史是什么?
  11. 各大日语学习网站整理
  12. 关于计算机专业演讲稿,计算机专业组长竞聘演讲稿
  13. LeetCode(Python)—— 相同的树(简单)
  14. Spring MVC异常统一处理(异常信息的国际化,日志记录)
  15. 也许事情本身的意义,没你想的那么重要。
  16. C++57个入门知识点_17 类的访问权限及C语言模拟类的封装(类的私有权限突破方法:编译期进行权限检查,运行期通过指针修改类的私有成员变量;利用函数指针对结构体中成员变量进行修改;CPU大小尾排列)
  17. 熟读这5个开源项目就是合格的GO语言工程师
  18. js动态隐藏和展示页面元素的方法
  19. 活动预告 | 2023 Meet TVM 开年首聚,上海我们来啦!
  20. asp毕业设计——基于asp+access的网络办公系统设计与实现(毕业论文+程序源码)——网络办公系统

热门文章

  1. 【jQuery】【购物车页面】实现近乎完美的联动交互(附GIF)
  2. java编译找不到符号_编译java代码时报错找不到符号
  3. 工具推荐-Colab介绍与使用方法
  4. go 自动文档生成 如何写高大上的 godoc(Go 文档)
  5. 爱奇艺数据仓库平台和服务建设实践
  6. Github全面详解-20 什么是开源
  7. win2003服务器安全配置技巧【汇集】
  8. HTML5七夕情人节表白网页制作【浪漫的空中散落的花瓣3D相册】HTML+CSS+JavaScript 3D动态相册源码素材 html生日快乐祝福网页制作
  9. CSS之100%和100vh的区别
  10. 矩阵教程之一:随机矩阵