一.访问修饰符
1.public:公共的,所有在该项目中都可见
2.protected:受保护的,同包,以及子类不同包可见
3.默认:就是不写修饰符。同包
4.private:私有,只在同类中

二.封装
1.定义:将信息和实现的细节封装到类中,对外只提供方法的访问
2.作用:隐藏实现细节,可以简化工作流程。隐藏信息,可以防止数据被随意修改
3.封装步骤:
a。将类中的属性访问修饰符改为私有的
b。写一对公共的方法来操作私有的属性:set/get方法
c。在set或者get方法中加入业务限制来修改属性

三.static关键字
1.定义:静态关键字,可以修饰属性,方法和代码块。
2.作用:是在类被加载时,被静态修饰的东西都被加载就绪。
静态属性和静态方法可以通过类名直接访问
3.注意事项:静态方法不能访问外部的非静态成员,静态方法中不能使用this关键字
4.使用场景:常用的工具类方法可以写成静态。

四.方法的重载
1.定义:是在同一个类中,出现同名方法,但参数列表必须不同(个数,类型,顺序)
2.特点:
必须在同一个类中
参数列表必须不同
与访问修饰符和返回值无关

五.例子

/*
* 1.编写一个人类,封装他的性别属性,要求性别只能赋值为男或女,其他不接受。
编写测试类,创建该对象给他性别属性赋值,打印输出其性别
*/
package com.class1103; import java.util.Scanner; public class Class01 { public static void main(String[] args) {
// TODO Auto-generated method stub Scanner sc=new Scanner(System.in);
Man m=new Man();
System.out.println("请输入性别");
m.setSex(sc.next());
System.out.println("性别是"+m.getSex()); System.out.println("请输入年龄");
m.setAge(sc.nextInt());
System.out.println("年龄是"+m.getAge());
} } class Man{
private String sex;
private int age;
public void setSex(String sex)
{
if(sex.equals("男")||sex.equals("女"))
{
this.sex=sex;
}else{
System.out.println("是人妖");
} }
public String getSex()
{
return sex;
}
public void setAge(int age)
{
if(age>=1&&age<=150)
{
this.age=age;
}else{
System.out.println("是千年老人妖");
}
}
public int getAge()
{
return age;
}
}
/*
* 对象数组
*/
package com.class1103; public class Class02 { public static void main(String[] args) {
// TODO Auto-generated method stub Student[] stu=new Student[20];
stu[0]=new Student("关羽",58,"男");
stu[1]=new Student("张飞",55,"男");
stu[2]=new Student("赵云",50,"男");
stu[3]=new Student("黄忠",67,"男");
stu[4]=new Student("马超",47,"男");
for(int i=0;i<5;i++)
{
System.out.print(stu[i].name+" ");
System.out.print(stu[i].age+" ");
System.out.print(stu[i].sex+" ");
System.out.println();
}
} } class Student{
String name;
int age;
String sex; public Student(String name,int age,String sex)
{
this.name=name;
this.age=age;
this.sex=sex;
}
}
package com.demo1103;
/**
* 实现信息的封装
* @author allen
*
*/
public class Demo1 {
private double balance; public void setBalance(double balance){
if(balance<0){
System.out.println("骗子死开");
return;
}else{
System.out.println("你就是我亲爹啊");
this.balance += balance;
}
} public double getBalance(){
return balance;
} public static void main(String[] args) {
Demo1 d = new Demo1();
d.setBalance(-1000);
System.out.println("您当前的余额是:"+d.getBalance());
}
}

  

package com.demo1103;

import java.util.Arrays;
/**
* 静态关键字和方法重载案例
*
*/
public class Test {
String name;
static int age; static{
System.out.println("我是静态块");
} public void test(int a,String b){
System.out.println("你好");
}
//重载
private int test(){
return 1;
} public static void hello(){
age = 1;
System.out.println("hello");
} public static void main(String[] args) {
int a = 1;
a = 1;
Test.hello();
}
}

  

  

  

7.封装,static,方法重载的更多相关文章

  1. 面向对象编程(二)封装--构造方法,this关键字,static关键字,方法重载

    面向对象三大特点:封装.继承.多态 封装概念 ①   将东西包装在一起,然后以新的完整形式呈现出来: 将方法和字段一起包装到一个单元中,单元以类的形式实现; ②   信息隐藏,隐藏对象的实现细节,不让 ...

  2. Java ——对象 类 方法重载 构造方法 封装 内部类

    本节重点思维导图 快捷键 生成代码:alt+shift+s 提取变量:alt+shift+L 快速复制行:alt+ctrl+向上或向下的箭头 删除行:ctrl+d 类:对同一种事物共同属性和行为的抽象 ...

  3. java——方法重载与重写、构造方法、this关键字、static关键字、strictfp关键字、类的导入

    Java SE5新增加@Override注解,它并不是关键字,但是可以把它当作关键字使用.当你想要覆写(重写)某个方法时,可以选择添加这个注解,在你不留心重载而并非覆写了该方法时,编译器就会生成一条错 ...

  4. 四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法

    四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 ...

  5. Java基础-方法重载和方法重写的区别

    什么是java方法重载 (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2)  ...

  6. java中的方法——重载yu重写(转)

    重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...

  7. C#面向对象(OOP)入门—第一天—多态和继承(方法重载)

    面向对象是什么 面向对象是一种基于对象的编程方法,它取代了仅仅依靠方法和流程的编程方式.面向对象的编程语言中,对象(object)其实就是指特定类型.或某个类的实例.面向对象使得编程人员更容易组织和管 ...

  8. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  9. dubbo接口方法重载且入参未显式指定序列化id导致ClassCastException分析

    问题描述&模拟 线上登录接口,通过监控查看,有类型转换异常,具体报错如下图 此报错信息是dubbo consumer端显示,且登录大部分是正常,有少量部分会报类型转换异常,同事通过更换方法名+ ...

随机推荐

  1. js 实现 0-9 随机排序

    function randomsort(a, b) {return Math.random()>0.5 ? -1 : 1;//用Math.random()函数生成0~1之间的随机数与0.5比较, ...

  2. JS中的call、apply、bind方法详解

    bind 是返回对应函数,便于稍后调用:apply .call 则是立即调用 . apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(co ...

  3. JavaScript易错知识点整理[转]

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  4. BZOJ3028: 食物(生成函数)

    题意 链接 Sol 生成函数入门题. 对每个物品分别列一下,化到最后是\(\frac{x}{(1-x)^4}\) 根据广义二项式定理,最后答案是\(C_{(N - 1) + 4 - 1}^{4-1} ...

  5. net core webApi返回值

    1 多个参数采用结构的形式,如class xyz 2 返回值使用IActionResult 控制,不能使用httpRequestMessage类型 3 url为路由名称+Controller前缀 如下 ...

  6. Deep Learning - 3 改进神经网络的学习方式

    反向传播算法是大多数神经网络的基础,我们应该多花点时间掌握它. 还有一些技术能够帮助我们改进反向传播算法,从而改进神经网络的学习方式,包括: 选取更好的代价函数 正则化方法 初始化权重的方法 如何选择 ...

  7. Elasticsearch Query DSL

    Elasticsearch Query DSL By:授客 QQ:1033553122 1. match_all 1 2. match 2 3. match_phrase 5 4. match_phr ...

  8. C# 利用Log4Net进行日志记录

    概述 本文主要简单说明如何使用Log4Net进行日志记录,在程序开发过程中记录日志的优点: 它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug: 一旦在程序中加入了Log 输出 ...

  9. 「Android」系统架构概述

    目录: 1.Android系统架构 2.Android类库 3.四大组件 --------------------------------------------------------------- ...

  10. Testlink1.9.17使用方法(第十二章 总结)

    第十二章 总结 QQ交流群:585499566 TestLink用于进行测试过程中的管理,通过使用TestLink提供的功能,我们可以将测试过程从:测试需求.测试设计.到测试执行.完整的管理起来,同时 ...