java基础day11---空指针异常----引用类型--自定义类型赋值--封装

day11
1.空指针异常---
--属于运行错误-java.long.NullPointerException
--原因:当引用名称的值为null时,就不能访问某个对象中的属性或方法
热锅非要访问这就出现空指针异常
--解决办法:在访问某个对象中的属性或方法之前必须保证该引用
名称中存放的是对象的地址(引用)
2.当一个对象中的属性是引用类型案例

/*
编程完成如下要求:班级类:属性:编号,名称,地址定义:无参构造方法,有参构造方法定义方法:显示班级的信息学生类:属性:学号,姓名,性别,年龄,所在班级定义方法:显示学生的信息(学号,姓名,性别,年龄,班级编号,班级名称)注意:所在班级应为班级类的类型测试类:通过有参构造方法,创建班级对象通过无参构造方法,创建学生类对象调用显示信息的方法显示学生的信息
*/
Class Grade{int num;String name;String address;//构造方法public Grade(){}public Grade(int num,String name,String address){this.num=num;this.name=name;this.address=address;}//方法:显示班级的信息public void show(){System.out.println("班级编号:"+num+"\n班级名称:"+name+"\n班级地址:"+address);}
}
//编写学生类
class Student{int id;String name;char sex;int age;Grade g=new Grade;//注意:g没有赋值时,则默认为null//不会包异常,班级编号显示0,名称nullpublic void showInfo(){System.out.println("学号信息如下");System.out.println("学号:"+id+"\n姓名:"+name+"\n性别:"+sex+"\n年龄"+age+"\n班级编号"+g.num+"\n班级名称"+g.name);}
}
//测试类
class Test{public static void main(String[] args){//通过有参构造方法,创建班级对象Grade grade=new Grade(432,"java基础","四楼");//通过无参构造方法,创建学生类对象Student s=new Student();//调用显示信息的方法显示学生的信息
    s.showInfo();}
}

 



3.当一个对象中的属性是引用类型内存分析
4.对用户自定义类型的属性赋值方法

class Student{
//构造public Student(){}public Student(int id,String name,char sex,int age,Grade g){this.id=id;this.name=name;this.sex=sex;this.age=age;this.g=g;}
}
//测试类
class Test{public static void main(String[] args){//通过有参构造方法,创建班级对象/*Grade grade=new Grade(432,"java基础","四楼");//通过无参构造方法,创建学生类对象Student s=new Student();//调用显示信息的方法显示学生的信息s.showInfo();*/
//创建学生对象同时对学生中多有的属性赋值
Student s2=new Student(1001,"李四",'男',21,new Grade(324,"java","hahah"));
s2.showInfo();}
}

 



5.为什么要封装
    --有些属性不符合实际意义,在赋值之前进行判断,当前值如果合法进行赋值
    否则不惊醒赋值

6.面向对象的三大特性
    封装--继承--多态---还有一个抽象

7.封装操作步骤
--定义:隐藏类的内部信息,不允许外部程序终结访问,
    而是通过方法进行操作
---封装操作步骤


class Student{String name;//第一步:讲属性设置为私有的private,只能在本类中使用int age;char sex;//编写对应属性的赋值setXXX和get取值方法public void setAge(int age){//将局部变量的值赋给成员变量this.age=age;}public int getAge(){return age;//表示返回成员变量age的值
    }}//编写学生测试类
class StudentTest{public static void main(String[] args){//实例化学生Student s=new Student();s.name="张三";/*通过运行发现问题:有些属性,如年龄,性别,不符合实际意义解决办法:有些属性不符合实际意义,在赋值之前进行判断,当前值如果合法进行赋值否则不进行赋值*/s.age=1234;s.sex='a';System.out.println("姓名:"+s.name+"\n年龄:"+s.age+"\n性别:"+s.sex);s.setAge(123456);System.out.println("年龄:"+s.getAge());}

 


}

转载于:https://www.cnblogs.com/fdxjava/p/10644414.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7下安装Python3.6

•安装python3.6可能使用的依赖 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel •到python官网找到下载路径, 用wget下载 wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz •解压tgz包 tar -zxvf Python-3.6.4.t…

非常酷!10个基于 HTML5 的字体应用演示网站

HTML5 是现在Web开发领域的热点,更多的开发人员开始使用HTML5来开发交互性强、效果出众的网站和各种应用。这是 HTML5 网站大观系列第四篇,本文与大家分享5个非常酷的基于 HTML5 的字体应用演示网站,一起欣赏。 Web Typography For The Lone…

ntp如何确认与服务器偏差_LED电子时钟显示屏如何实现时间同步统一校时?

LED电子时钟显示屏采用一体式铝合金边框设计,更坚固美观节能环保,更以其简单的操作和稳定的性能,广泛应用于学校、考场、医院、金融、移动通信、石油、电力、交通、工业以及国防等同步时钟系统的显示终端,LED电子时钟显示屏已成为…

jquery ajax下拉联动,基于jQuery Ajax实现下拉框无刷新联动

本文实例为大家分享了jQuery Ajax实现下拉框无刷新联动的具体代码,供大家参考,具体内容如下HTML代码:{Layout null;}using DAL;using System.Data;{AreaDal areaDal new AreaDal();string areaId ViewBag.areaId;DataRow drArea areaDal.…

Java 8新闻

Java 8, b128和Java 8 RC2的第一个候选版本于2月出现,修复了新Comparator API中的一个严重缺陷,该缺陷中其新的thenComparing()方法具有不必要的类型限制。 java.util.Comparator的thenComparing()方法不需要类型U扩展java.lang.Comparable &…

HDP 2.6 requires libtirpc-devel

HDP 2.6 requires libtirpc-devel 个问题,截止 Mustafa Kemal MAYUK 2017年06月30日 06:30 hadoopPowerSystemsHello, I am trying to install HDP 2.6 on RHEL 7.2 ppc64le. Installation over ambari fails due to "Error: Package: hadoop_2_6_0_3_8-hdfs-2…

推荐10款非常有用的 Ajax 插件

这篇文章与大家分享的是10款非常有用的 Ajax 插件,有用于图片的,用于分页的,还有用于导航的。这些作者的想法特别新颖,希望你能从中找到自己需要的插件。 1. AJAX-ZOOM 非常强大的一款插件,可用鼠标滚轮进行缩放&…

luogu P1083 借教室

传送门 小水题吧 二分能处理到的询问即可 用差分维护前x个订单之后的值 最后求一遍前缀和 如果爆负就是有不满足的 复杂度O((mn)lgm) 或者区间加和区间最小值线段树也行(常数略大) Code:(线段树) 1 #include<cstdio>2 #include<cstring>3 #include<cmath>4 #…

svgaps绘制时不能用中文命名吗_设计师需要了解的切图命名规范

2020年8月21日下午4点50分 黄河公园通常我们在界面设计完成之后要切图给到前端开发。初做UI设计时&#xff0c;把重点都放在设计效果图上&#xff0c;对之后的切图命名规范没有很注重。当时我会有一些疑惑&#xff0c;切图命名的原则是什么&#xff1f;直接命名为能表达清楚的名…

hdu-1728(贪心bfs的灵活运用吧)

链接 [https://vjudge.net/contest/256476#problem/D] 题意 给定一个m n (m行, n列)的迷宫&#xff0c;迷宫中有两个位置&#xff0c;gloria想从迷宫的一个位置走到另外一个位置&#xff0c;当然迷宫中有些地方是空地&#xff0c;gloria可以穿越&#xff0c;有些地方是障碍&am…

jquery ajax.then,jQuery动态AJAX Promise链

小编典典解决方案使用for&#xff1a;var array [One, Two, Three];var id array[0];var data getData(id);for (var i 1; i < array.length; i) {// Or only the last "i" will be used(function (i) {data data.then(function() {return getData(array[i])…

分享20个漂亮的DIV CSS标准化站点案例

看到有些网站的代码十分优雅&#xff0c;心想自己什么时候也能写出这么好的代码。其实&#xff0c;这不是一朝一夕能达到的&#xff0c;需要的实践中不断锤炼和提高。我们可以通过分析别人写得好的网页代码来更加快速的提高自己&#xff0c;下面向大家推荐20个基于DIV CSS标准布…

在单独的WAR组件中对SPA资源和API实现进行分区

单页应用程序正Swift吸引人们的注意力&#xff0c;以实现基于Web的丰富&#xff0c;健壮和移动友好的应用程序。 本质上&#xff0c;这需要改变应用程序体系结构&#xff0c;其中整个应用程序用户界面是使用JavaScript来实现的&#xff0c;而服务器端代码则为服务器端应用程序逻…

Centos7中安装多版本dotnet core sdk

新开发的项目使用了新的2.1.3由于sdk不兼容之前的2.0版本&#xff0c;所以需要安装两个版本的sdk&#xff0c;参考链接&#xff1a;https://ken.io/note/centos7-.netcore-multi-version-install&#xff0c;对Linux安装还是理解不够到位&#xff0c;这次就明白点了&#xff0c…

上传文件显示进度条_【技巧 】iOSamp;Windows互传文件?透过「文件」轻松解决~...

苹果家的隔空投送能做到手机、电脑间的无缝衔接&#xff1b;在iOS13的「文件」中加入了局域网的文件共享功能&#xff0c;电脑不需要安装任何软件&#xff0c;实现 iPhone 与 Windows 电脑间文件的共享、传输。注意&#xff1a;本文介绍的是基于局域网&#xff08;同一路由器&a…

HTTP简介

详细URL: http://www.cnblogs.com/ranyonsue/p/5984001.html 主要特点 1、简单快速&#xff1a;客户向服务器请求服务时&#xff0c;只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单&#xff0c;使得H…

在Window上使用Jenkins自动部署和上传快照Java工件

这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序&#xff08;使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring环境中开发的学生申请应用程序&#xff09;的部署过程-生成项目&#xff0c;运行单元测试&#xff0c;上传构建的工件到…

10个在线Web设计开发工具介绍

1. 在线文本生成器 BlindTextGenerator&#xff1a;对设计师来说&#xff0c;这是一个简单又好用的文本生成小工具。内含许多种字体&#xff0c;可设置字符的大小&#xff0c;数量&#xff0c;样式&#xff0c;段落的数量及对齐方式等&#xff0c;还可以很方便且精确地调节文本…

获取clientheight为0_用10行python代码获取全国城市交通生活圈

今天在网上冲浪看到一个很花哨的数据&#xff0c;全国各城市主要商圈从早上6点到晚上10点的20min&#xff0c;30min,45min,60min,90min生活圈轮廓。1 获取思路按下F12按下F12&#xff0c;点击淮海路可以看到出现一个网站&#xff0c;他就是我们要找的接口接口内容是通过get请求…

promise将ajax变为同步,ES6-Promise改造异步请求为同步

1.扩展&#xff1a;ajax1.1 代码如下$.ajax({url:地址,type:get/post,data:{},dataType:json/jsonp,success:function(res){//请求成功&#xff0c;接收返回值}})1.2 概念ajax不能跨域请求两个网址&#xff1a;协议 主域号 端口号 完全相同时&#xff0c;这时两个网址完全相同&…