首页 > 编程语言 >Java面向对象2

Java面向对象2

时间:2022-12-14 13:11:06浏览次数:53  
标签:Java String Person void 面向对象 age public name

封装性

 

 

 

 

封装就是保护内容,保证某些属性或方法可以不被外部看见,而在内部自己去处理。

 

class Person{

String name;

int age;

public void tell(){

System.out.println(“姓名:”+name+”年龄:”+age);

}

}

 

public class EncDemo01{

public static void main(String[] args){

Person per=new Person();

per.name=”张三”;

per.age=-30;

per.tell();

}

}

代码上没问题但是从实际出发,以上代码不符合要求。

 

实现封装

为属性封装:private属性类型 属性名称;

为方法封装:private 方法返回值 方法名称(参数列表){}

class Person{

private String name;

private int age;

public void tell(){

System.out.println(“姓名:”+name+”年龄:”+age);

}

}

 

public class EncDemo01{

public static void main(String[] args){

Person per=new Person();

per.name=”张三”; //错误无法访问封装属性

per.age=-30; //错误无法访问封装属性

 

per.tell();

}

}

 

访问封装内容

 

被封装的属性如果需要被访问,则需要编写setter以及getter方法完成。

如:private String name;

Setter(设置):public void setName(String n){} //用于属性赋值,命名规则将属性首字母大写并在前加上Set或者Get

Getter(取得):public void getNmae(){} //用于获取属性的值

class Person {

private String name;

private int age;

public void tell() {

System.out.println("姓名:" + getName() + ",年龄:" + getAge());

}

public String getName() {

return name;

}

public void setName(String n) {

name = n;

}

public int getAge() {

return age;

}

public void setAge(int a) {

age = a;

}

}

加入验证

 

Setter方法中加入验证

可以在setter方法中对设置的内容进行验证。

public void setAge(int a) { // 设置年龄

if (a >= 0 && a < 150) { // 在此处加上验证代码

age = a;

}

}

如下:

package com.stxy.demo0308;

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

Person pr=new Person();

pr.setName(in.next());

pr.setAge(in.nextInt());

pr.tell();

}

}

class Person{

private String name;

private int age;

public void tell(){

System.out.println("姓名:"+getName()+"年龄:"+getAge());

}

public int getAge() {

return age;

}

public void setAge(int a) {

if(a>=0&&a<=150) {

age=a;

}

}

public String getName() {

return name;

}

public void setName(String n) {

name=n;

}  

}

标签:Java,String,Person,void,面向对象,age,public,name
From: https://www.cnblogs.com/YZTL/p/16981779.html

相关文章

  • Java面向对象1
     程序的发展阶段程序的发展经历了两个主要阶段:面向过程、面向对象。对于面向对象与面向过程可以用一个例子解释,如一个木匠要做一个盒子,那么做这个盒子的出发点会有两种......
  • 50个Java面试必问的面试题,我都给你整好了
    ​我们整理了一份主要的Angular面试问题清单,分为三部分:角度面试问题–初学者水平角度面试问题–中级角度面试问题–高级初学者水平–面试问题1.区分Angular和Angula......
  • java中的方法重写
    本文主要讲述java中方法重写的细节代码结构如图:Animal类:publicclassAnimal{privateStringname;protectedintage;intweight;private......
  • Java性能调优System的gc垃圾回收方法
    java性能调优System的gc垃圾回收方法java性能调优System的gc垃圾回收方法示例解一、什么是System.gc()?​​System.gc()​​是用Java,C#和许多其他流行的高级编程语言提供的API......
  • Java中ArrayList同步的2种方法分享
    Java中ArrayList同步的2种方法分享​​arrayList​​ 的实现是默认不同步的。这意味着如果一个线程在结构上修改它并且多个线程同时访问它,它必须在外部同步。结构修改意味......
  • 利用CSS、JavaScript及Ajax实现图片预加载的三大方法
    预加载图片是提高用户体验的一个很好方法。图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度。这对图片画廊及图片占据很大比例的网站来说......
  • 24_Java网络编程
    Java_网络编程一、网络编程入门友情提示使用网络编程代码时,注意连接网络的变化(IP地址会变),可能不注意的话导致无法正确运行stocket:套接字1、网络编程......
  • 新装Eclipse运行Java程序报错Exception in thread "main" java.lang.UnsupportedClass
    错误现象:  Exceptioninthread"main"java.lang.UnsupportedClassVersionError:views/LoginFramehasbeencompiledbyamorerecentversionoftheJavaRunt......
  • Java Object转实体(自用)
    JavaObject转实体一、遇到的问题在从RedisHash根据一些条件(类似*|0)查询对应的HashValue时,发现在Java里获取RedisHash中的Value其实是字符串的形式。我尝试使用了fa......
  • Java复习笔记-抽象、接口、内部类、枚举
    1抽象abstractclass类名{//方法(实现的,抽象方法)//属性}1.1抽象类的细节1).抽象类不能被实例化2).可以有不是抽象的......